2009-04-23 43 views
4

Oracle用のMicrosoft ODBCドライバを使用してOracle 10gデータベースに接続しようとしています。私はdnsless接続を使用したいので、www.connectionstrings.comから接続文字列を取得します。Oracle用のMicrosoft ODBCを使用してOracle 10gデータベースに接続してください

理想的には、DNSエントリまたはOracle TNSエントリを設定する必要はありませんが、間違いかもしれませんが、上記のことが私のためになると思いました。

ERROR [NA000] [Microsoft][ODBC driver for Oracle][Oracle]ORA-12514: 
TNS:listener does not currently know of service requested in connect 
descriptor 

ERROR [IM006] [Microsoft][ODBC Driver Manager] 
Driver's SQLSetConnectAttr failed 

ERROR [01000] [Microsoft][ODBC Driver Manager] 
The driver doesn't support the version of ODBC behavior that the 
application requested (see SQLSetEnvAttr)." 

は、私の知る限り、オンラインで伝えることができるよう、他の人が10グラムに接続するために、Oracleドライバ用のMicrosoft ODBCを使用しているが、多分私は何かが欠けている:私は、次のようになっています。私はvb.netアプリケーションから途中で接続しています。

答えて

2

私はそれはあなた自身の質問に答えることがいかにコーシャわからないんだけど、私はその接続文字列を見つけました私が探しているものはそれ以上です:

"Driver={Microsoft ODBC for Oracle}; " & _ 
           "CONNECTSTRING=(DESCRIPTION=" & _ 
           "(ADDRESS=(PROTOCOL=TCP)" & _ 
           "(HOST=myserver)(PORT=1521))" & _ 
           "(CONNECT_DATA=(SERVICE_NAME=servicename))); " & _ 
           "uid=username;pwd=password; 
0

接続するサービスのエントリをtnsnames.oraファイルに追加する必要があります。代わりに、そのファイルのguiインターフェイスに

Start->Programs->Oracle->Configuration and Migration Tools->Net Configuration Assistant 

に移動して、そこでOracle接続を設定することもできます。その後、ODBCはサービス名を解決できます。

+0

これで、tnsnames.oraは必須であり、回避できないと言っていますか?これは、oracleドライバのインストールも必要であることを意味しますか、Microsoft ODBCドライバはtnsnames.oraファイルを参照しますか? – Gaidin

+0

はい、ODBCは、一般的なMicrosoftインタフェースを介したOracleコールのリダイレクトに過ぎません。あなたはまだoracleドライバをインストールし、odbcがあなたのために呼び出すoracle接続を設定する必要があります。 ODBCを使用する利点は、アプリケーションがOracle、Microsoft Access、SQL Serverなどを見てより一貫したインターフェイスを持つことができることです。 – JosephStyons

+0

@JosephStyons:SQL開発者経由でoralceに接続できます。 VBA経由で接続しようとすると、[Microsoft] [ODBC Driver Manager]ドライバのSQLSetConnectAttrが失敗しました。これを解決するには? – logan

9

10gでは、EZCONNECT機能を使用できます。サーバーmyServerという上ORCLというOracleインスタンスに接続するには、接続文字列は次のようになります。

Driver={Microsoft ODBC for Oracle};Server=myServer:1521/ORCL;Uid=myUsername;Pwd=myPassword; 
+1

私はこの機能について知らなかった。とてもかっこいい。 – JosephStyons

+0

@Mac:VBA経由で接続するときに同じエラーが発生します。私は接続にcn.openメソッドを使用しています。 VBAでコードを使用するにはどうすればよいですか? – logan

関連する問題