基本的な質問をして申し訳ありません。Oracleのデータをaccessを使って参照や修正をする方法を教えてください。またASPやOracleのサンプルがあるサイトを教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

こんにちは。



#1 bin-chanさんの補足です。

まずは、前提条件として
1.ODBCドライバーがインストールされていること。
2.ORACLEのリスナーが起動していること。
の2点を、ご確認下さい。

ODBCドライバーがインストールされていない時はOracleのHPから
ODBCドライバーをダウンロード後インストールして下さい。
http://www.oracle/co/jp
注意:ORACLEのバージョンにより使用するODBCが異なります。

で次はODBC環境の設定です。
多分、[ORAWIN]で始まるフォルダーがあると思います。
そのフォルダーの配下[X:\ORAWIN~\Network\Admin\]に
Tnsnames.ora
ってファイルがあると思います。
このファイルを更新しますので、出来れば事前にコピーを
保存して下さい。(失敗した時はコピーから戻して下さい)

で、[Tnsnames.ora]をメモ帳等のエディターで開きます。
ファイルの最後に下記の記述を追加して下さい。
-----------------------------------------------------------
※1.world =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(COMMUNITY = tcp.world)
(PROTOCOL = TCP)
(Host = ※2)
(Port = ※3)
)
)
(CONNECT_DATA = (SID = ※4)
)
)
-----------------------------------------------------------
※1:適当な名前を付けます。'AAAA'でも'BBBB'でも構いません。
   出来れば、サーバーの名前など、分かりやすいほうが良いです。
※2:ORACLEの入っているサーバーのIP Addressを指定します。
[X:\Windows\hosts]で定義しているものであれば、その名前で
も良いです。
※3:ORACLEへのアクセス用のポート番号を指定します。
ORACLEのデフォルトでは[1521]ですが、カスタマイズされて
いるかもしれませんのでORACLEの管理者にご相談下さい。
※4:ORACLEのSIDを指定します。これもORACLEの管理者に伺って
   下さい。
具体例)
-----------------------------------------------------------
AYU.world =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(COMMUNITY = tcp.world)
(PROTOCOL = TCP)
(Host = xxx.xxx.xxx.xxx)
(Port = 1521)
)
)
(CONNECT_DATA = (SID = TEST)
)
)
-----------------------------------------------------------
追加後、ファイルを保存します。

後は、#1 bin-chanさんの書かれている通りに操作して下さい。
ODBCデータソースの作成で「サーバー名」のところに、
上で作った[※1]を入力して下さい。

それと、ORACLEテーブルを更新(UPDATE)する時は、ORACLEテーブル
に[UNIQUE INDEX]か[PRIMARY KEY]が必要ですので、ご注意下さい。

分からないところがあれば補足して下さい。

ではでは・・・
    • good
    • 0

前半だけの回答です。



1.ODBCデータソースを作成する。
  1)コントロールパネルに[ODBCデータソース]があるので[開く]。
  2)システムDNSタブをクリック。
  3)追加ボタンをクリック。
  4)ドライバを選択(MS版とOracle版があるかも?)
  5)完了ボタンをクリック。

2.ACCESSでリンクテーブルの作成を選択する。
  1)何がしかのデータベースを「開く」。
  2)メニュー[ファイル]の[外部データの取り込み]-[テーブルのリンク]を選択。
  3)[ファイルの種類]で[ODBSデータソース]を選択。(ここでも新規作成可能なんですね)

3.ACCESSでOracleのデータを操作する。
  1)リンクテーブルを操作できるようになってるはず。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qフェッチでデータが上書きされます

こんにちは。perl + html + mysqlのコーディングで悩んでいるので質問させてください。
複数フィールド+複数件(例えば13フィールド+3件)のデータがテーブルに存在する時、SELECT文でそのデータを取得したいとします。
分からない所はフェッチの部分なのですが、

$i=0;
while($selectdata[$i]=$sth->fetchrow_arrayref(
$i++;
}

----[中略]-----

for($i=0;$i<$rows;$i++){
print "[SELECTデータ->$i]\n";
for($j=0;$j<13;$j++){
print "$selectdata[$i][$j]\n";
}
print "<BR>\n";
}

表示されたデータが3件とも、3番目のデータが表示されます。
フェッチで取得したデータを配列にいれる段階で、上書きしているような気がするのですが、具体的にどこが悪いか分かりません。
ご教授お願いいたします。

こんにちは。perl + html + mysqlのコーディングで悩んでいるので質問させてください。
複数フィールド+複数件(例えば13フィールド+3件)のデータがテーブルに存在する時、SELECT文でそのデータを取得したいとします。
分からない所はフェッチの部分なのですが、

$i=0;
while($selectdata[$i]=$sth->fetchrow_arrayref(
$i++;
}

----[中略]-----

for($i=0;$i<$rows;$i++){
print "[SELECTデータ->$i]\n";
for($j=0;$j<13;$j++){
print "$selectdata[$i][$j]\n";
}
...続きを読む

Aベストアンサー

いや、
>$i=0;
>while($selectdata[$i]=$sth->fetchrow_arrayref(
>$i++;
>}
これを

my @selectdata;
while ( my $array_ref = $sth->fetchrow_arrayref ) {
push @selectdata, [ @{$array_ref} ];
}

みたいな感じで受け取ったリファレンスを一旦デリファレンスして、
その要素を含む新しい無名配列を生成すれば良いと思いますけど。

QAccessでOracleのテーブルをリンクし、Access側では読み取り専用にしたい

社内にOracleデータベースでのシステムが立ち上がっているのですが、管理帳票の出力用に、OracleのデータをAccessで読み込みたいと思っています。
テーブルのリンクそのものは知っており、成功しているのですが、Oracleデータベースのデータを壊さないようにするため、このリンクテーブルを読み取り専用にしたいと思っています。どのようにすれば良いでしょうか。

なお、Oracle側で読み取り専用ユーザを作成して、そのユーザでリンクすれば良いことは理解していますが、それは最後の手段にしたいと思っています。別の方法でうまくできないでしょうか。

Aベストアンサー

Accessからは、ODBCでOracleにリンク接続しているのでしょうか?
それであれば、ODBCの設定画面(コントロールパネル→管理ツール→データソース(ODBC))で、「読み取り専用接続」という設定がありますので、そこにチェックをすればOKだと思います。

QiPhone「データの取得方法」について

こんにちは。先々月くらいにiPhoneを購入した者です。
iPhoneの「データ取得方法」について質問があります。
予想外にパケット通信料の請求が多かったため、サファリや天気など通信
を必要とするアプリを使用しないようにし、「データの取得方法」をフェ
ッチの15分ごとに変更しました。ただ、「データの取得方法」のプッシュ
とフェッチの違いがよく分かっておらず、プッシュをONにしたままが通信
の節約になるのか、それともフェッチの15分間隔(若しくは30分)が良い
のか分かりません。メールの量は送受信併せて1日30~40で、使わない時
は全く使いません。ただ緊急を要するメールもあるので手動でのメール
取得は考えていません。
前述したように、プッシュとフェッチどちらがパケットの節約になるのか
教えていただきたいと思います。その他パケット通信節約のための小ネタ
などがあれば教えてください。
よろしくお願い致します。

Aベストアンサー

ExchangeServerやMobileMeなど、サーバ側から自動的に送られてくるメールがプッシュメール、通常のメールのように自分から取りに行くメールがフェッチです。
プッシュであれば一定時間ごとにメールボックス確認に行く手間がないため、その分安くはなります。
が。通常のメールをプッシュで使うことはできないので、基本的に選択肢はあってないようなものです。
ExchangeServerやMobileMe使ってなければ、回答としては変わらないってことになります。

ただ、基本的に通信をおこないまくる携帯なので、パケット通信はかかるもんだと思っておいたほうがいいです。

QASPからOracle9iへの接続方法

環境は以下のように変更となりました。

・サーバーOS:WindowsNT SP6→Windows2000Server
・DB:Oracle8.0.5→Oracle9i
・ASP
・クライアント:Oracle8.1.6のまま

ASPでWebからoo4oでOracleDBに接続します。
Oracle8で動作していたASPが、Oracle9iに変更した
ところ、ASPの動作で以下エラーがでてしまいます。
 エラー内容:
  「orasession作成中にエラーが発生しました」
oo4oでの接続は以下のように記述しています。

 Set Application("OraSession") =
 Server.CreateObjec
      ("OracleInProcServer.XOraSession")

どんな原因が考えられますでしょうか?
お教え下さい。よろしくお願いいたします。

Aベストアンサー

こんにちは。

 オラクルのサポートには加入していますか?9iリリース1からリリース2に接続ができないというKROWNがありました。同じ原因と考えられます。

 もし、同じ原因なら、対策パッチはサポートを受けていないとダウンロードできません。サポートを受けるには、購入したときに起算して年間サポート料を支払う必要があります。

QPL/SQL内の共通関数の引数にフェッチしたレコードごと渡すのは可能?

カーソルでレコードを検索し、フェッチします。
その後、INSERTする共通関数を呼ぶのですが、
フェッチしたレコードの値でINSERTしたいのです。
引数で1コずつ渡すと数が多いので、フェッチしたレコードごと引数で渡せないかと
それって可能ですか?

Aベストアンサー

こんにちは。

 共通関数の引数にカーソルのレコード型(cursor_name%ROWTYPE)を
使用すればよいと思います。
ただこの場合は、汎用性に乏しいのですが・・・。

 よって個人的にはINSERT先のテーブル名のレコード型が
お勧めです。[テーブル名%ROWTYPE]
 カーソルのレコードから移し変える処理が必要になりますが、
登録処理が簡単に記述できますネ。
(INSERT INTO TAL_NAME VALUE record_type;)

QOracle8i + ASP

今度の仕事でOracle8i+ASPをやることになったのですが、
勉強資料としてオラクルのサイト以外にも関連書籍を探しています。
皆さんでOracle8i+ASPのプログラミングについてかかれている
書籍があったらご紹介ください。

Aベストアンサー

まだ開いてます?^^;
自分がASP+SQLServerでやったときに購入した本をご紹介。

1.「ビギニングASPデータベース」John Kauffman著 インプレス \5600。
WebページからDBを使う手法が詳細に解説されています。基本例がAccessなのが難ですが、そこは環境に沿って読み替えて...。

2.山田祥寛氏著作の通称黒本。
現在手許に無いので正確なタイトルや価格を失念しましたが、コーディング中は一番お世話になりました。(辞書の如く使えます)

3.「Windowsプログラミングvol.2 データベースプログラミング300の技」「Windowsプログラミングvol.5 ASP300の技」技術評論社 \1980。
初心者が電車の中で読む向け?のムック。とっつき易い反面、あんまり役には立たなかったかも知れず...;

質問者さまお求めの水準や内容(文法?とか技術解説?とか)が判りませんので、ズレた回答になっていましたら申し訳ございません。

Qデータハザードについて(パイプライン)

こんにちは。コンピューターアーキテクチャのパイプラインの項目の勉強をしていて、データハザードについて分からない問題があったので、質問させていただきます。

以下の二つのパイプラインの動作がよくわかりません。


基本的にはフォワーディングによって解決するデータハザードですが、メモリアドレス生成のときはフォワーディングは間に合わないので、結果の格納(W)が終わらないと命令フェッチ(F)ができないそうです。つまり
add r1, r2 .r3    F D E W
lw r4, dpl(r1)         F X X DEW

となるそうです。しかし
ld r2, c(r1)
subi r1, r1, 4
のように「ロード命令の次に算術命令」という順番ですと、ハザードは生じないそうです。


下の場合は上と違いr1のデータを更新するだけなのでフォワーディングによって改善ができるという解釈でよろしいのでしょうか?
上は本に書いてあったものなのですが、下のはインターネットから調べたものなのであっていない可能性があるので質問しました。

ちなみに両者ともロード命令の場合なのですが、ストア命令でも同じような振る舞いになるのでしょうか?

よろしくお願いいたします。

こんにちは。コンピューターアーキテクチャのパイプラインの項目の勉強をしていて、データハザードについて分からない問題があったので、質問させていただきます。

以下の二つのパイプラインの動作がよくわかりません。


基本的にはフォワーディングによって解決するデータハザードですが、メモリアドレス生成のときはフォワーディングは間に合わないので、結果の格納(W)が終わらないと命令フェッチ(F)ができないそうです。つまり
add r1, r2 .r3    F D E W
lw ...続きを読む

Aベストアンサー

「データハザード」ってのは, 端的にいうと「ある命令で得られた結果をそのあとの命令で使うために, 前の命令が終わるまで『あとの命令』の実行を止めなきゃならない」って状態.

ここに挙がっている例だと, 上のやつは add で得られた r1 を次の lw で使うから, 「r1 が得られるまで lw を実行できない」ということになる. ところが下の場合には ld の結果である r2 はそのあとで使わないから, ここで見えている分についてはハザードは生じていない (さらにあとの命令で r2 を使っていたら, ld とのタイミングでハザードが起きるかもしれん). あるいは,
ld r1, c(r2)
subi r1, r1, 4
なら明らかにハザードが起きる.

そして, はっきりいうと「ロードの場合はメモリからレジスタにデータを移すので算術命令のデータがメモリに書き込まれるまではストールしてしまう」というのは何をいっているのかよくわからん. もっというと「算術命令のデータがメモリに書き込まれる」とか「算術命令がメモリにデータを書き込む」とかの意味がわからん. どういうこと? どうせ MIPS かなんかの RISC なんだろうから, そもそも「算術命令の結果」がメモリに書き込まれることはありえないよ.

それぞれの命令を実行するために「確定していなければならないデータ」がなんなのか, そしてそれらが「どのタイミングで確定するのか」を確認してください. ここの例だと「add の結果がどこで出てきてどのタイミングにフォワーディングできるのか」とか「メモリアドレスをどのタイミングで生成するのか」とか, です.

とはいえ, 上の例で「どのステージが同時に起きているのか」がわからないんだよね.... add の D と lw の F が同じクロックと思っていい?

参考URL:http://akademeia.info/index.php?%A5%D1%A5%A4%A5%D7%A5%E9%A5%A4%A5%F3%A5%CF%A5%B6%A1%BC%A5%C9

「データハザード」ってのは, 端的にいうと「ある命令で得られた結果をそのあとの命令で使うために, 前の命令が終わるまで『あとの命令』の実行を止めなきゃならない」って状態.

ここに挙がっている例だと, 上のやつは add で得られた r1 を次の lw で使うから, 「r1 が得られるまで lw を実行できない」ということになる. ところが下の場合には ld の結果である r2 はそのあとで使わないから, ここで見えている分についてはハザードは生じていない (さらにあとの命令で r2 を使っていたら, ld とのタイミングで...続きを読む

QCSVデータ→ACCESSに変換。また新しいCSVデータをACCESSに追加できない?

ACCESSでCSV形式のデータを取り込みします。
※このCSVのデータを[a.txt]とします。

[a.txt]を一度取りこみ。
この段階で[a.txt]の中を空にします。
しばらくしてから
[a.txt]にデータたまりだして、
再度ACCESSで取り込みしようとした場合、
先ほど取り込んだACCESSに追加ってできないものなんでしょうか?

よろしくお願いします

Aベストアンサー

>ワークテーブルへインポート・・・の意味が

最終的に追加したいテーブルと同じカラムを持つ、空のテーブルを用意し、
それにインポートして、問題なければ、最終的に追加したいテーブルへインサート。
問題があるならば、インポート先のテーブルをTRUNCATEして再処理。
最終的に作業が完了したら、空のテーブルをTRUNCATEしておく。

Q「スーパーフェッチ」と「プリフェッチ」の違い

Vistaで「スーパーフェッチ」機能とはよく使用するアプリケーションをメモリにプリロードするとありますが、XPの「プリフェッチ」機能にも似たような記載がありました。
この両者の機能で決定的な違いは何処でしょうか?
ご存知あれば教えて頂ければ幸いです。

Aベストアンサー

どのデータをプリロードするかを選択する戦略が賢くなったということです.

XPでは単に最も最近使ったデータを優先的に選んでいましたが,Vistaでは今までの履歴を学習してより最適な(次に必要になりそうな)データを選ぶようになりました.

参考URL:http://pc.watch.impress.co.jp/docs/2007/0226/mobile366.htm

QWindows XP Pro ASP VBScriptから MDBを参照する場合

お世話になります。

Windows XP Pro ASPで
WEBアプリケーションの環境を作っています。

DBは、SQL Server , Oracle , ACCESSを選択できるようで、SQL ServerとOracle用のテーブル作成のスクリプトとMDBが添付されています。

とりあえずはACCESSでやろうと思うのですが、その場合ACCESSかACCESS RUNTIMEをインストールする必要がありますでしょうか。

MDAC2.7SP1およびMicrosoft Jet 4.0 SP7をダウンロードするように記述あるのですが、その前にACCESSが必要なのかが不明です。

余談ですが、
SQL ServerでやろうとしてMSDE2000RelAをインストールしたのですが、SAのパスワードがインストール時のもので通らず、ACCESSでという状況です。

Aベストアンサー

不要です。

理由
msaccess.exeはmdbを開くアプリケーションで、自分自身(=MDB)のデータ操作にはADOやDAOを使っている。
→MDB内部のデータ操作のみならばADOやDAOで可能


人気Q&Aランキング

おすすめ情報