【发布时间】:2012-04-18 13:17:45
【问题描述】:
我正在使用 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
我可以尝试什么来解决这个问题?
【问题讨论】:
-
如果有错误,请输入错误信息!
-
我猜主帖中提到了这个错误......(未指定的错误)......就是这样......
-
尝试将字段和表格放在括号中:
[PICTURE]、[ALBUMS]和[CODE]。否则,请仔细检查您的字段名称。您应该重构您的代码并在完成调用某些内容后始终关闭连接,最好使用using()括号。您正在检查连接状态这一事实对我来说暗示了更大的问题。 -
LarsTech 点非常重要,Oracle 充满了非托管资源,没有确定性地完成 dB 连接会产生影响。未指定的错误是否有内部异常?通常,Oracle 会以 ORA-00000 格式为您提供错误?查询是在 TOAD 还是其他 sql EM 工具中运行?
-
@LarsTech:我总是关闭我的连接,即使它没有在此代码中显示,但为了进行更多重新检查,我会检查连接状态。 @Jeremy:我得到的完整的未指定错误文本如下:System.Data.OleDb.OleDbException:发生未指定的错误 Oracle 错误,但无法从 Oracle 检索错误消息。不支持数据类型。