1

我正在使用 oleDbConnection 从 Oracle 列中选择一个 BLOB 数据,我必须坚持使用这种类型的连接,因为我的所有应用程序都在使用它。

使用以下代码后,出现错误:未指定的错误。

Dim pSelectCommand As OleDbCommand = New OleDbCommand() 
Dim commandTextTemplate As String = "SELECT PICTURE FROM ALBUMS WHERE CODE= 4"
pSelectCommand.CommandText = commandTextTemplate
pSelectCommand.Connection = g_pOleDbConnection 
 
Dim fs As FileStream 
 
' Open the connection and read data into the DataReader.
If g_pOleDbConnection.State = ConnectionState.Closed Then g_pOleDbConnection.Open()
 
Dim myReader As OleDbDataReader = pSelectCommand.ExecuteReader() 'Error is on this line

Do While (myReader.Read())
Dim byteArray As Byte() = (myReader(g_pfldAPicture))
fs = New FileStream("Album.bmp", FileMode.CreateNew, FileAccess.Write)
fs.Write(byteArray, 0, byteArray.Length)
Loop

我可以尝试什么来解决这个问题?

4

1 回答 1

0

这是您在 eggheadcafe 和 CodeProject 上的问题的相同答案,参考:

http://www.eggheadcafe.com/community/vb/14/10442149/how-to-retrieve-blob-data-from-oracle-client-using-oledb-driver-in-vb.aspx
http://www .codeproject.com/Questions/368813/How-to-retrieve-BLOB-data-from-Oracle-Client-using

OleDb 不支持 Oracle Blob。http://support.microsoft.com/kb/244661 您必须改用 ADO.net。

编辑:你好

我理解你,我试图说得很好:

不支持 Oracle 8.x 特定的数据类型,例如 CLOB、BLOB、BFILE、NCHAR、NCLOB 和 NVARCHAR2。

参考: http: //support.microsoft.com/kb/244661

您需要使用Oracle Provider for OLE DB或更好,但只需使用Oracle Data Provider for .NET (ODP.NET) 进行此 BLOB 读取操作。

于 2012-04-19T06:00:40.820 回答