LDAPを使用してExcelVBAからOracleデータベースに接続するにはどうすればよいですか?

マークデイビス

ADODB接続を使用してOracleデータベースに接続するExcelスプレッドシートがいくつかあります(以下のサンプルコードを参照)。接続は、oracleinstaclientドライバーを使用してクライアントマシンにセットアップされたTNSNAMESを使用して行われます。

Set oCN = CreateObject("ADODB.Connection")
oCN.CursorLocation = 3
oCN.CommandTimeout = 0

cCN11 = "DRIVER=Oracle in instantclient11_1;"
strDatabase = "DBQ=DATABASE_NAME;"
strID = "UID=YourID;"
strPassword = "PWD=YourPassword;"

oCN.Open cCN11 & strDatabase & strID & strPassword

このコードは正常に機能します。ただし、TNSNAMES.ORAの保守から離れて、代わりにLDAPを使用することが決定されました。LDAPを使用してVBA経由で接続する方法についていくつかの情報を見つけようとしましたが、役立つ情報を見つけることができませんでした。

ADODB接続でLDAP接続文字列が許可されているかどうか、または他のものを完全に使用する必要があるかどうかはわかりません。誰かが私を正しい方向に向けることができれば、それはありがたいです。

編集

私のセットアップの背景を説明するためだけに。32 Oracleクライアントがネットワークドライブ(z:\ oracle11)にインストールされています。これを使用するクライアントマシンのレジストリには、次のドライバ情報があります。

InstantClient11_1のHKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ ODBC \ ODBCINST.INI \ Oracle

「HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ ORACLE」には、インストールされているOracleクライアント(z:\ oracle11)を指すように設定されたORACLE_HOMEとTNS_ADMINがあります。TNSNAMES.ORAは、インストールフォルダー(z:\ oracle11)のルートにあります。

この設定は何年にもわたって実施されており、TNSNAMES経由で接続する場合は正常に機能します。

接続文字列サイトによると、TNSLESS接続を実行する場合、接続文字列の形式は次のようになります。

SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));

uid = myUsername; pwd = myPassword;

コメントと回答、およびいくつかのさらなる調査に基づいて、以下のコードを使用して接続文字列を設定すると機能するはずです。接続文字列にドライバーを含める必要があります

現在のTNSNAMES.ORAデータを使用して接続文字列を作成しました(セキュリティ上の理由から、HOST、PORT、SERVICE_NAME、UID、およびPWDは編集されています)

Dim sSQL As String
Dim oRS As ADODB.Recordset  'ADODB.Recordset
Dim oCN As ADODB.Connection

Set oCN = CreateObject("ADODB.Connection")
oCN.CursorLocation = 3
oCN.CommandTimeout = 0


' Build the connection string
strConnectionString = "DRIVER=Oracle in instantclient11_1;DBQ=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=my_ host)(PORT=1234)))(CONNECT_DATA=(SERVICE_NAME=myhost.world)(SERVER=DEDICATED)));Pwd=my_password;Uid=my_user_id"

' Open the connection using the connection string
oCN.Open strConnectionString

残念ながら、「DBQ」がTNSNAMESファイルに存在しなかった場合に表示されるエラーメッセージが表示されます。

[Oracle][ODBC][Ora][ORA-12154: TNS:could not resolve the connect identifier specified.

(接続文字列の例のように)DBQをSERVERに変更すると、別のエラーメッセージが表示されます。

[Oracle][ODBC][Ora][ORA-12560: TNS:protocol adapter error.

「my_host」値に対してNSLOOKUPを実行しましたが、解決されるので、それが正しいことがわかります。ポート番号は正しいです。サービス名も正しいので、ユーザー名とパスワードも正しいです。

また、「Microsoft ActiveX Data Objects2.8」ライブラリと6.1バージョンを使用してみましたが、どちらも違いはありません。

回答

Wernfried Domscheitの回答を明確にするには、「DBQ = DATABASE_NAME」を変更するだけで、DATABASE_NAME値がDNS値になります。Wernfriedに感謝します。

私は明らかにこれを考えすぎていました。私はそれを最初に試したに違いないと確信していますが、明らかにそうではありません。よくできました。もう一度試して、答えを読みました...もう一度。

Wernfried Domscheit

DATABASE_NAMEデータベースの単なるエイリアスです。このようなエイリアスがtnsnames.oraファイルによって解決されるか、LDAPサーバーによって解決されるかは関係ありません

したがって、違いはありません。ファイルのTNS_ADMIN場合と同じように変数を設定するだけtnsnames.oraです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Javaを使用してOracleデータベースからKendoGridにデータを接続するにはどうすればよいですか?

分類Dev

pypikaを使用してデータベースに接続するにはどうすればよいですか?

分類Dev

ADOを使用してデータベースに接続するにはどうすればよいですか?

分類Dev

netshを使用してポート転送を使用してOracleデータベースに接続するにはどうすればよいですか?

分類Dev

EntityFrameworkとOracleManaged Data Accessを使用してOracleデータベースに接続するにはどうすればよいですか?

分類Dev

VBScriptとUFTを使用してOracleデータベースに接続するにはどうすればよいですか?

分類Dev

PHPを使用してWebサイトからMicrosoftSQLデータベースに接続するにはどうすればよいですか。

分類Dev

JBoss 7.1.1 FinalをOracleデータベースに接続するにはどうすればよいですか?

分類Dev

内のデータベースクエリ接続でExcelvbaループを使用するにはどうすればよいですか?

分類Dev

Google AppMakerから外部mysqlデータベースとしてGoogleCloud SQLデータベースに接続するにはどうすればよいですか?

分類Dev

SparkSQLContextからNetezzaデータベースに接続するにはどうすればよいですか

分類Dev

Arduinoからデータベースに接続するにはどうすればよいですか?

分類Dev

MySQL Workbenchを使用してデータベースサーバーに接続するにはどうすればよいですか?

分類Dev

Python + SQLAlchemyを使用してMySQLデータベースにリモートで接続するにはどうすればよいですか?

分類Dev

JNDIを使用してJavaアプリケーションをデータベースに接続するにはどうすればよいですか?

分類Dev

Web上のIISを使用してSQLデータベースをWebホストサイトに接続するにはどうすればよいですか?

分類Dev

Scalaを使用してpostgreSQLデータベースにApacheSparkに接続するにはどうすればよいですか?

分類Dev

SQL Server 2014を使用してFoxproデータベースファイルに正常に接続するにはどうすればよいですか?

分類Dev

R:RJDBCを使用してOracleデータベースからBLOBデータをダウンロードするにはどうすればよいですか?

分類Dev

ローカルのPgAdminを使用してDiviopostgresデータベースに接続するにはどうすればよいですか?

分類Dev

CLIを使用してリモートDB2LUWデータベースに接続するにはどうすればよいですか?

分類Dev

C ++からLDAPを使用してActiveDirectoryに接続するにはどうすればよいですか?

分類Dev

PostgreSQLを使用して異なるデータベースの2つのテーブルを接続するにはどうすればよいですか?

分類Dev

SQLAlchemyを使用してWindows10のDockerでPostgresデータベースに接続するにはどうすればよいですか?

分類Dev

Pythonを使用してSSH経由でSqlite3データベースに接続するにはどうすればよいですか?

分類Dev

Rails を使用して手動で MYSQL データベースに接続するにはどうすればよいですか?

分類Dev

PHPを使用してAndroidアプリをAmazonRDS MySQLデータベースに接続するにはどうすればよいですか?

分類Dev

サーバーをデータベースに接続するにはどうすればよいですか

分類Dev

JPAを使用して複数のデータベースに接続するにはどうすればよいですか?

Related 関連記事

  1. 1

    Javaを使用してOracleデータベースからKendoGridにデータを接続するにはどうすればよいですか?

  2. 2

    pypikaを使用してデータベースに接続するにはどうすればよいですか?

  3. 3

    ADOを使用してデータベースに接続するにはどうすればよいですか?

  4. 4

    netshを使用してポート転送を使用してOracleデータベースに接続するにはどうすればよいですか?

  5. 5

    EntityFrameworkとOracleManaged Data Accessを使用してOracleデータベースに接続するにはどうすればよいですか?

  6. 6

    VBScriptとUFTを使用してOracleデータベースに接続するにはどうすればよいですか?

  7. 7

    PHPを使用してWebサイトからMicrosoftSQLデータベースに接続するにはどうすればよいですか。

  8. 8

    JBoss 7.1.1 FinalをOracleデータベースに接続するにはどうすればよいですか?

  9. 9

    内のデータベースクエリ接続でExcelvbaループを使用するにはどうすればよいですか?

  10. 10

    Google AppMakerから外部mysqlデータベースとしてGoogleCloud SQLデータベースに接続するにはどうすればよいですか?

  11. 11

    SparkSQLContextからNetezzaデータベースに接続するにはどうすればよいですか

  12. 12

    Arduinoからデータベースに接続するにはどうすればよいですか?

  13. 13

    MySQL Workbenchを使用してデータベースサーバーに接続するにはどうすればよいですか?

  14. 14

    Python + SQLAlchemyを使用してMySQLデータベースにリモートで接続するにはどうすればよいですか?

  15. 15

    JNDIを使用してJavaアプリケーションをデータベースに接続するにはどうすればよいですか?

  16. 16

    Web上のIISを使用してSQLデータベースをWebホストサイトに接続するにはどうすればよいですか?

  17. 17

    Scalaを使用してpostgreSQLデータベースにApacheSparkに接続するにはどうすればよいですか?

  18. 18

    SQL Server 2014を使用してFoxproデータベースファイルに正常に接続するにはどうすればよいですか?

  19. 19

    R:RJDBCを使用してOracleデータベースからBLOBデータをダウンロードするにはどうすればよいですか?

  20. 20

    ローカルのPgAdminを使用してDiviopostgresデータベースに接続するにはどうすればよいですか?

  21. 21

    CLIを使用してリモートDB2LUWデータベースに接続するにはどうすればよいですか?

  22. 22

    C ++からLDAPを使用してActiveDirectoryに接続するにはどうすればよいですか?

  23. 23

    PostgreSQLを使用して異なるデータベースの2つのテーブルを接続するにはどうすればよいですか?

  24. 24

    SQLAlchemyを使用してWindows10のDockerでPostgresデータベースに接続するにはどうすればよいですか?

  25. 25

    Pythonを使用してSSH経由でSqlite3データベースに接続するにはどうすればよいですか?

  26. 26

    Rails を使用して手動で MYSQL データベースに接続するにはどうすればよいですか?

  27. 27

    PHPを使用してAndroidアプリをAmazonRDS MySQLデータベースに接続するにはどうすればよいですか?

  28. 28

    サーバーをデータベースに接続するにはどうすればよいですか

  29. 29

    JPAを使用して複数のデータベースに接続するにはどうすればよいですか?

ホットタグ

アーカイブ