2016-07-19 27 views
1

Ich verwende diese Verbindung Bespannbild mit ADODBVerbinden mit einer Oracle-DB mit ADODB mit Excel VBA

Set oConn = New ADODB.Connection 
oConn.ConnectionString = "User ID=USERNAME;Password=PW;Data Source=xxxxxxx.db.yyyy.com:port;Provider=OraOLEDB.Oracle; " 
oConn.ConnectionTimeout = 30 
oConn.Open 
rs.CursorType = adOpenForwardOnly 

und wenn ich die Verbindung öffnen, werde ich einen Laufzeitfehler

erhalten ORA-12504: TNS: Zuhörer wa das SERVICE_NAME in CONNECT_DATA nicht gegeben

ich auch versucht haben, mit dieser Verbindungszeichenfolge

"ODBC;DRIVER={Oracle in OraClient11g_home2};" & _ 
"DBQ=" & inputHost & ";UID=" & inputUser & ";PWD=" & inputPassword & ";" & _ 
"HOST=" & inputHost & ";PORT=1521;DB=" & inputHost & ";" & _ 
"DefaultIsolationLevel=READUNCOMMITTED" 

und ich erhalte die Laufzeitfehler

[Microsoft] [ODBC Driver Manager] Der Datenquellenname ein kein Standardtreiber

nicht gefunden angegeben
+0

In meiner begrenzten Erfahrung bedeutet dies, dass Sie die tnsnames.ora-Datei bearbeiten müssen, um diese Verbindung einzuschließen oder zu reparieren. –

+0

möglicherweise Hilfe finden Sie unter http://www.connectionstrings.com/ – OldProgrammer

Antwort

1

Ich denke Data Source=xxxxxxx.db.yyyy.com:port das Problem ist. Sie sollten den TNS-Alias ​​gemäß der Definition in der Datei tnsnames.ora anstelle von "ServerName.Domain: Port" angeben.

Ich weiß nicht, ob OLEDB-Anbieter Easy-Connect-Benennungsmethode unterstützt. Haben Sie in Ihrer sqlnet.ora Datei wie NAMES.DIRECTORY_PATH=(tnsnames, ezconnect) angegeben?

+0

Also welche Art von Verbindungszeichenfolge sollte ich verwenden? – casper

+0

Endete nur ConnectionString = _ "DRIVER = {Oracle in OraClient11g_home1};" & _ "DBQ = {{von tnsnames.ora}}; UID = xxxxx; PWD = xxxx;" – casper

Verwandte Themen