【问题标题】:how to get clob data with vb6如何使用 vb6 获取 clob 数据
【发布时间】:2016-08-17 04:31:40
【问题描述】:

我想用 vb 6 获取 clob 数据。为此,我编写了以下代码:

    Dim conn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rs As New ADODB.Recordset
Dim cn As String
Dim fingerdata1 As String
Dim SQL As String

Private Sub Command1_Click()
conn.Open cn
cmd.ActiveConnection = conn
conn.CursorLocation = adUseClient
SQL = "select FINGERDATA from FINGERDATA"
 rs.ActiveConnection = conn
  rs.CursorLocation = adUseServer
rs.LockType = adLockReadOnly
rs.Source = SQL
rs.Open
rs.MoveFirst ' to be safe
Do While Not rs.EOF
       fingerdata1 = rs.Fields("FINGERDATA").Value
       MsgBox (fingerdata1)
       rs.MoveNext
Loop
End Sub

Private Sub Form_Load()
cn = "Provider=MSDAORA.1;Password=fingerprintdata;User ID=fingerprintdata;Data Source=10.11.201.84;Persist Security Info=True"
End Sub

但是当我运行这段代码时,我收到以下错误:

我该如何解决这个错误?请帮助我从 vb6 中的 oracle 获取 clob 数据。

【问题讨论】:

标签: oracle vb6


【解决方案1】:

使用 Oracle Home Driver 从 CLOB 数据类型中检索数据。

在下面发布了如何在您的机器上配置 Oracle Home 驱动程序。

How to Handle Clob Data Type in Excel from VB SQL Query

【讨论】:

    【解决方案2】:

    我不得不查看很多帖子,这是一个最终适用于我的案例的解决方案:

    我不得不使用“Oracle in OraClient12Home1”而不是“Microsoft ODBC for Oracle”,因为 Microsoft 不处理 CLOB

    请注意,在我的例子中,“strSQL”语句只检索一个 CLOB 值。

    VBA 代码:

    strCon = "Driver={Oracle in OraClient12Home1};DBQ=alias from your TNSNAMES.ORA ;uid=MYSUER;pwd=MYPASS;"
    Connection.Open (strCon)
    
    Results.Open strSQL
    
    Dim strTxt As String
    
    **strTxt = CStr(Results.Open.Fields(0).Value)**
    
    ThisWorkbook.Worksheets(6).Cells(3, 1) = strTxt
    

    【讨论】:

      【解决方案3】:

      以下代码适用于我。

      Dim conn As New ADODB.Connection
      Dim cmd As New ADODB.Command
      Dim rs As New ADODB.Recordset
      Dim cn As String
      Dim fingerdata1 As String
      Dim SQL As String
      
      Private Sub Command1_Click()
      
      
      
      conn.Open cn
      cmd.ActiveConnection = conn
      conn.CursorLocation = adUseClient
      rs.Open "select * from FINGERDATA", conn
      rs.MoveFirst ' to be safe
      Do While Not rs.EOF
             fingerdata1 = rs.Fields("FINGERDATA").Value
             MsgBox (fingerdata1)
             rs.MoveNext
      Loop
      End Sub
      
      Private Sub Form_Load()
      cn = "Provider=OraOLEDB.Oracle;Password=fingerprintdata;User ID=fingerprintdata;Data Source=10.11.201.84;Persist Security Info=True"
      End Sub
      

      【讨论】:

      • 循环结束后,最好不要使用无用的rs.MoveFirst,而是创建rs.Close
      猜你喜欢
      • 2020-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-20
      • 1970-01-01
      • 2016-10-16
      相关资源
      最近更新 更多