ERRO AO TENTAR GRAVAR BIN?RIO EM BANCO DE DADOS

DEXIE 25/07/2017 12:22:29
#475390
Olá,

Estou implementando uma função em VB6 que deve resgatar um binário que está salvo em um banco de dados e gravar em outro banco.
Na codificação abaixo estou conseguindo recuperar o arquivo que está salvo no banco de dados, só que ao tentar grava-lo no outro banco, ocorre o seguinte erro:
[Ô]O aplicativo está usando um valor incorreto para a operação atual.[Ô]

                 [ô]==============================================================
[ô] GERO O ARQUIVO DE ACORDO COM O BINARY QUE ESTÁ NO BANCO
[ô]==============================================================
Set strStream = New ADODB.stream
strStream.Type = adTypeBinary
strStream.Open
strStream.Write Sn.Fields(poscol + 1).value
strStream.SaveToFile Arquivo, adSaveCreateOverWrite
[ô]==============================================================

fileNum = FreeFile
Open Arquivo For Binary As fileNum
ReDim bytes(LOF(fileNum) - 1)
Get fileNum, , bytes
Close fileNum

Sql = [Ô]UPDATE MouraBurger_Produto SET [Ô] & colunasVarbinaryArr(poscol) & [Ô] = ?[Ô]
Sql = Sql & [Ô] WHERE Produto = [Ô] & Val([Ô]0[Ô] & Sn([Ô]Produto[Ô]))

Set cmd = New ADODB.Command
cmd.ActiveConnection = DB.Connection
cmd.CommandText = Sql
cmd.Parameters.Append cmd.CreateParameter([Ô]@[Ô] & colunasVarbinaryArr(poscol), adVarBinary, adParamInput, 4000, bytes)

cmd.CommandType = adCmdText
cmd.Execute


Alguém saberia me dizer onde estou errando?

O erro ocorre na linha:

  cmd.Parameters.Append cmd.CreateParameter([Ô]@[Ô] & colunasVarbinaryArr(poscol), adVarBinary, adParamInput, 4000, bytes) 

DEXIE 25/07/2017 14:45:47
#475397
Olá,

Consegui resolver o problema acima com o código abaixo, contudo nada é atualizado na tabela, mesmo o comando execute sendo realizado. Alguém saberia me dizer o por que?
Lembrando que está passando pelo cmd.execute

          Dim colunasVarbinaryArr() As String
Dim poscol As Integer
Dim colCodigo As String
Dim FileNum As Integer
Dim Bytes() As Byte

colCodigo = [Ô][Ô]

colunasVarbinaryArr = Split(ColunasVarbinary, [Ô],[Ô])
[ô]GERA O ARQUIVO TEMPORÁRIO COM A IMAGEM BAIXADA
Arquivo = AddBarraInvertida(PathBanco) & [Ô]imagem.jpg[Ô]

Sql = [Ô]Select [Ô] & Coluna & [Ô],[Ô]
Sql = Sql & ColunasVarbinary
Sql = Sql & [Ô] From [Ô] & Tabela
Sql = Sql & [Ô] Where [Ô] & Coluna & [Ô] in ([Ô] & Codigos & [Ô])[Ô]
Set Sn = DbConectar.Execute(Sql)
Do While Not Sn.EOF
For poscol = 1 To UBound(colunasVarbinaryArr)
Set strStream = New ADODB.Stream
strStream.Type = adTypeBinary
strStream.Open
strStream.Write Sn.Fields(poscol).value
strStream.SaveToFile Arquivo, adSaveCreateOverWrite
strStream.LoadFromFile Arquivo

If Not IsNull(strStream.Read) Then
Sql = [Ô]UPDATE MouraBurger_Produto SET [Ô] & colunasVarbinaryArr(poscol) & [Ô] = ?[Ô]
Sql = Sql & [Ô] WHERE Produto = [Ô] & Val([Ô]0[Ô] & Sn([Ô]Produto[Ô]))

Set cmd = New ADODB.Command
cmd.ActiveConnection = DB.Connection
cmd.CommandText = Sql

cmd.Parameters.Append cmd.CreateParameter([Ô]@arquivo[Ô], adLongVarBinary, adParamInput, strStream.Size, strStream.Read)

cmd.CommandType = adCmdText
cmd.Execute
End If
Next poscol
Tópico encerrado , respostas não são mais permitidas