É possível inserir dados do Tipo Binário no BD com parâmetros ? :huh:
Assim eu sei que é possível:
Sub Gravar_Dados()
Abb '<====== Função que abre a conexão com o BD
Set Rs = New ADODB.Recordset
Rs.CursorLocation = adUseServer
Rs.Open "SELECT * FROM InDat", Con, adOpenStatic, adLockOptimistic
'inclui um registro
Rs.AddNew
Rs("Nome") = txtNome.Text
Rs("Foto") = Por_Em_Byte(camFoto) '<= Função que converte uma imagem em Bytes
Rs.Update
Set Rs = Nothing
Con.Close
MsgBox "Dados gravados !", vb script:
Agora estou tentando assim...que é com parâmetros nos campos:
Sub Inserir_Dados()
Dim Cmd As ADODB.Command
Dim Inserir As String
Dim b() As Byte
b() = Por_Em_Byte(camFoto)
Inserir = "INSERT INTO InDat(Nome,Foto)VALUES(@Nome,@Foto)"
Abb
Set Cmd = New ADODB.Command
With Cmd
.ActiveConnection = Con
.Prepared = True
.CommandText = Inserir
.CommandType = adCmdText
.Parameters.Append .CreateParameter("@Nome", adChar, adParamInput, , txtNome.Text)
.Parameters.Append .CreateParameter("@Foto", adBinary, adParamInput, , b())
.Execute
End With
MsgBox "Dados Salvo !", vbInformation
Set Cmd = Nothing
Con.Close
End Sub
Sempre que tentei apresentou Erro: 3001
Os argumentos são incorretos, estão fora do intervalo aceitável ou estão em conflito.
e aponta para a linha: .Parameters.Append .CreateParameter("@Foto", adBinary, adParamInput, , b())
Já mudei o tipo de "adBinary" para "AdVarBinary", "adLongVarBinary" e "AdArray" mas continua sempre dando o mesmo erro... <_<
O BD é Access 2007 e o tipo do campo está como Objeto OLE.
*** EDITADO ***
Agora está dando este erro:
Erro: 3708
Objeto Parameter definido incorretamente. As informações são inconsistentes ou incompletas.
Question
Danleonhart
Seguinte pessoal...
É possível inserir dados do Tipo Binário no BD com parâmetros ? :huh:
Assim eu sei que é possível:
Agora estou tentando assim...que é com parâmetros nos campos:Sempre que tentei apresentou Erro: 3001
Os argumentos são incorretos, estão fora do intervalo aceitável ou estão em conflito.
e aponta para a linha: .Parameters.Append .CreateParameter("@Foto", adBinary, adParamInput, , b())
Já mudei o tipo de "adBinary" para "AdVarBinary", "adLongVarBinary" e "AdArray" mas continua sempre dando o mesmo erro... <_<
O BD é Access 2007 e o tipo do campo está como Objeto OLE.
*** EDITADO ***
Agora está dando este erro:
Erro: 3708
Objeto Parameter definido incorretamente. As informações são inconsistentes ou incompletas.
<_<
Edited by DanleonhartLink to comment
Share on other sites
12 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.