【发布时间】:2016-09-29 00:07:13
【问题描述】:
当我运行 SQL 插入命令从 Oracle 链接服务器中的表中获取图像和其他数据并将其插入 SQL 服务器时,它可以工作。当我在 Visual Basic 6 程序中运行完全相同的查询时,插入也可以工作,但没有插入图像。
链接服务器部分正在工作,因为我可以成功进行多个查询。
我正在运行的插入是下面的插入。请注意,在这两种情况下,插入都不会引发错误;他们在 VB 和 Management Studio 中工作,但是,当通过 VB 运行时,只是图像没有出现。
INSERT INTO Employees
(
PhotoEmployee,
TheID,
Name
)
VALUES
(
(Select FOTO_Humanus From OPENQUERY(ORACLE_LinkedServer, 'Select FOTO.pesFoto FOTO_Humanus FROM Pessoa_Foto1 FOTO WHERE FOTO.pesCodPessoa = 32892')),
'900397',
'MARCELO ROCHA'
)
我搜索了很多,但找不到有类似问题的人。
接收图像的 SQL-Server 字段来自 IMAGE 类型。
在 Oracle 中,图像存储在 LONG RAW 类型的字段中。
你能帮忙吗?
编辑:(添加更多细节)
连接正常...我很确定。此外,当我执行 SQL 命令或连接到数据库时没有错误:一切工作正常,除了这个图像.. 没有插入到目标数据库中。所有其他字段都插入没有问题。所有字段都在同一个表中。
我正在使用的 Visual Basic 6 代码如下。
1 - O 使用我需要的确切查询填充数组
2 - 不久之后,我在这个数组中进行迭代,执行 SQL 查询。
这是VB代码:
SQLOracleTemp = "Select FOTO.pesFoto FOTO_Humanus FROM Pessoa_Foto1 FOTO WHERE FOTO.pesCodPessoa = 32892"
NomeLinkedServer = "ORACLE_LinkedServer"
SQL_InsertColab = "INSERT INTO Employees" & vbCrLf
SQL_InsertColab = SQL_InsertColab & " (" & vbCrLf
SQL_InsertColab = SQL_InsertColab & " funFotoColaborador," & vbCrLf
SQL_InsertColab = SQL_InsertColab & " TheID," & vbCrLf
SQL_InsertColab = SQL_InsertColab & " Name" & vbCrLf
SQL_InsertColab = SQL_InsertColab & " )" & vbCrLf
SQL_InsertColab = SQL_InsertColab & " VALUES" & vbCrLf
SQL_InsertColab = SQL_InsertColab & " (" & vbCrLf
SQL_InsertColab = SQL_InsertColab & " (Select FOTO_Humanus From OPENQUERY(" & NomeLinkedServer & ", '" & SQLOracleTemp & "'))," & vbCrLf
SQL_InsertColab = SQL_InsertColab & " " & aColabs_Insert(UBound(aColabs_Insert)).IDOAS & "," & vbCrLf
SQL_InsertColab = SQL_InsertColab & " " & aColabs_Insert(UBound(aColabs_Insert)).Nome & vbCrLf
SQL_InsertColab = SQL_InsertColab & " )" & vbCrLf
aSQL(UBound(aSQL)) = SQL_InsertColab
ReDim Preserve aSQL(UBound(aSQL) + 1)
For ContaSQL = 0 To UBound(aSQL)
if aSQL(ContaSQL) <> "" then
gConexao_Banco.Execute aSQL(ContaSQL)
enf if
Next
【问题讨论】:
-
请告诉我们失败的VB6代码
-
您好,感谢您的发帖。我已经编辑了问题并添加了 VB 代码。 VB 代码创建了我在问题开头发布的确切查询。如果我停止 VB,以调试模式获取查询并在 Management Studio 中手动运行。它可以工作。如果我让 vb 运行.. 他执行查询,插入工作...但是 .. 图像没有出现。当我检查时,图像字段为 NULL。当我手动进行时..当我检查时..我可以在字段中看到图像数据,它也出现在我的应用程序中
-
你用什么模式打开连接?调用 Execute 后是否检查过连接错误集合?
-
嗨 Jac,我正在使用 OLEDB 连接到 SQL-Server。连接中没有错误..我可以毫无问题地对其进行查询
标签: sql-server oracle image vb6 linked-server