Oracle 如何用vb6获取clob数据

Oracle 如何用vb6获取clob数据,oracle,vb6,Oracle,Vb6,我想用VB6获取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 =

我想用VB6获取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数据

以下代码适用于我

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

使用Oracle Home驱动程序从CLOB数据类型检索数据

在下面的文章中介绍了如何在您的计算机上配置Oracle Home驱动程序


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

我不得不使用“OraClient12Home1中的Oracle”而不是“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

我读到了答案。但是我正在使用ADODB连接。请尝试改用oracle本机驱动程序。在循环完成后,最好使
rs.Close
关闭,而不是无用的
rs.MoveFirst