【问题标题】:Setting Up an ODBC Data Source for Oracle using vbscript使用 vbscript 为 Oracle 设置 ODBC 数据源
【发布时间】:2023-04-06 05:20:01
【问题描述】:

我正在尝试从 excel 连接到 oracle 数据库。这在我手动创建 DSN 时工作正常,但现在我想使用 VB 以编程方式创建 DSN。请帮助我,我是 vbscripting 的新手。

【问题讨论】:

    标签: vbscript


    【解决方案1】:

    这里是一些示例代码:

    Dim objConn
    Set objConn = CreateObject("ADODB.Connection")
    
    Dim connString
    connString = "YOUR ORACLE CONNECTION STRING HERE!"
    
    objConn.Open connString
    
    Dim objRS
    Dim strSQL
    strSQL = "SELECT * FROM YourTable"
    
    Set objRS = objConn.Execute(strSQL)
    If objRS.EOF Then
        ' No Records Returned
    Else
        Do
                 ' Do what you want with your output
            objRS.MoveNext
        Loop Until objRS.EOF
    End If
    End With
    
    objRS.Close
    Set objRS = Nothing
    
    
    objConn.Close
    Set objConn = Nothing
    

    使用Oracle Connection Strings 页面查找您的连接字符串。这是 VBScript,对于 VB,您可能需要进行一些更改,例如定义变量类型。

    Dim strSQL As String
    

    【讨论】:

      【解决方案2】:

      以下是如何将 Oracle Objects 用于 Excel 中的 OLE 自动化的示例:

      http://download.oracle.com/docs/cd/B28359_01/win.111/b28378/clients.htm#CIHFAHJJ

      以上链接中的示例:

      ... 
      ' Declare variables 
      Dim OraSession As OraSession 
      Dim OraDatabase As OraDatabase 
      Dim OraDynaset As OraDynaset 
      Dim OraFields As OraFields
      
      ' Create the OraSession Object. The argument to CreateObject is the 
      ' name by which the OraSession object is known to the OLE system. 
      Set OraSession = CreateObject("OracleInProcServer.XOraSession") 
      
      ' Create the OraDatabase Object by opening a connection to Oracle.
      Set OraDatabase = OraSession.OpenDatabase("ExampleDb", "scott/tiger", 0&) 
      
      ' Create the OraDynaset Object. 
      Set OraDynaset = OraDatabase.CreateDynaset("select * from emp", 0&) 
      
      ' You can now display or manipulate the data in the dynaset. For example: 
      Set OraFields = OraDynaset.fields 
      OraDynaset.movefirst 
      Do While Not OraDynaset.EOF 
          gMsgBox OraFields("ename").Value 
          OraDynaset.movenext 
      Loop 
      

      【讨论】:

        猜你喜欢
        • 2015-03-04
        • 2013-12-01
        • 2012-02-15
        • 2017-07-28
        • 2018-10-19
        • 1970-01-01
        • 1970-01-01
        • 2019-01-18
        • 1970-01-01
        相关资源
        最近更新 更多