Connection string syntax for Classic ADO / ODBC / Oracle 10g EZConnect

后端 未结 3 1985
别跟我提以往
别跟我提以往 2021-01-04 18:31

I\'m trying to connect various VBA projects to an Oracle 10g back end using ADO (2.8) and no TNS. After various attempts, we\'ve decided that the simplest series of steps fo

相关标签:
3条回答
  • 2021-01-04 19:09

    Try this and replace the values as appropriate:

    Set Connection = CreateObject("ADODB.Connection")
    
    blnTest = Connection.Open("Driver={Oracle in instantclient};Dbq=127.0.0.1:1521/SERVICENAMEHERE", "USERNAME", "PASSWORD")
    

    If Oracle in instantclient doesn't work check the HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers registry key to see what the value is for the Oracle Instant Client (there may be a version number appended).

    If this still doesn't work for you. Leave a comment with the details of what happened and I'll try to adjust the answer for you.

    0 讨论(0)
  • 2021-01-04 19:14
    ' Create a connection object.'
    Dim cn As ADODB.Connection
    Set cn = New ADODB.Connection
    
    ' Create a recordset object.'
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset
    
    ' Provide the connection string.'
    Dim strConn As String
    Dim str As String
    
    'Use the SQL Server OLE DB Provider.'
    strConn = "Driver=(Oracle in OraHome92);" & "Data Source=;Uid=;Pwd=;"
    
    'Now open the connection.'
    cn.Open strConn
    With rs
    
        ' Assign the Connection object.'
        ActiveConnection = cn
    
        ' Extract the required records.'
        .Open "SELECT ", cn
    
    
    End With
    
    0 讨论(0)
  • 2021-01-04 19:22

    Similar to 'user1206604's answer - I set up an ODBC connection using ODBC Data Source Administrator (for example's sake we'll name it 'DEMO') and connect like this:

    Dim conn As New adodb.Connection
    Set conn = New adodb.Connection
    
    connStr = "Provider=OraOLEDB.Oracle;Data Source=DEMO;User Id=yourUserID;Password=yourPassword;"
    conn.Open connStr
    
    Dim api As New adodb.Recordset
    Set api = New adodb.Recordset
    
    yourQueryString = "SELECT foo FROM bar"
    api.Open yourQueryString, conn, adOpenDynamic, adLockReadOnly 
    'adjust above setting as needed
    
    while not api.EOF
      'do interesting stuff here
    wend
    
    'clean up resources
    api.Close
    Set api = Nothing
    
    conn.Close
    Set conn = Nothing
    

    The ODBC data source administrator is found (on my machine) in start menu > Programs > Oracle - oraClient10g > Configuration and Migration Tools > Microsoft ODBC Administrator and looks like this:

    ODBC Data Source Administrator

    0 讨论(0)
提交回复
热议问题