BUILD WHERE INSERT_FIELDS() FAILED
esta me retornando este erro nesta função, alguem podera me ajudar, desde ja agradeço a atenção.
base mysql
ComandoSql = [Ô]SELECT Icone FROM unsiformulario WHERE CodigoForm = 1 [Ô]
NomeCampoImage = [Ô]Icone[Ô]
Public Function SalvarImagem(ComandoSql As String, NomeCampoImage As String, CaminhoImagem As String) As Boolean
Try
Dim rs As New ADODB.Recordset
Dim mstream As New ADODB.Stream
If rs.State <> 0 Then rs.Close()
[ô]rs.CursorLocation = ADODB.CursorLocationEnum.adUseServer
If ConectaBase() = True Then
rs.Open(ComandoSql, Con, ADODB.CursorTypeEnum.adOpenKeyset, ADODB.LockTypeEnum.adLockOptimistic)
If CaminhoImagem.Length > 0 Then
mstream.Type = ADODB.StreamTypeEnum.adTypeBinary
mstream.Open()
mstream.LoadFromFile(CaminhoImagem)
[ô]rs.Fields(NomeCampoImage).Value = mstream.Read
rs(0).Value = mstream.Read
rs.Update()
End If
mstream.Close()
rs.Close()
Return True
Else
Return False
End If
Catch ex As Exception
MessageBox.Show(ex.Message, [Ô]Salva Imagem Banco de Dados[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
Return False
End Try
End Function
Estruttura da Tabela
Create Table
CREATE TABLE 'unsiformulario' (
'CodigoForm' bigint(3) NOT NULL,
'Descricao' varchar(30) NOT NULL,
'Nome' varchar(30) NOT NULL,
'CodigoModulo' bigint(3) NOT NULL,
'DescricaoModulo' varchar(30) NOT NULL,
'CodigoMenu' bigint(3) NOT NULL,
'DescricaoMenu' varchar(30) NOT NULL,
'CodigoSubMenu1' bigint(3) NOT NULL DEFAULT [ô]0[ô],
'DescricaoSubMenu1' varchar(30) NOT NULL DEFAULT [ô][ô],
'CodigoSubMenu2' bigint(3) NOT NULL DEFAULT [ô]0[ô],
'DescricaoSubMenu2' varchar(30) NOT NULL DEFAULT [ô][ô],
'Status' char(1) NOT NULL DEFAULT [ô]A[ô],
'Icone' blob,
'Seq' bigint(20) NOT NULL AUTO_INCREMENT,
PRIMARY KEY ('CodigoForm'),
UNIQUE KEY 'SeqInc' ('Seq')
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1
base mysql
ComandoSql = [Ô]SELECT Icone FROM unsiformulario WHERE CodigoForm = 1 [Ô]
NomeCampoImage = [Ô]Icone[Ô]
Public Function SalvarImagem(ComandoSql As String, NomeCampoImage As String, CaminhoImagem As String) As Boolean
Try
Dim rs As New ADODB.Recordset
Dim mstream As New ADODB.Stream
If rs.State <> 0 Then rs.Close()
[ô]rs.CursorLocation = ADODB.CursorLocationEnum.adUseServer
If ConectaBase() = True Then
rs.Open(ComandoSql, Con, ADODB.CursorTypeEnum.adOpenKeyset, ADODB.LockTypeEnum.adLockOptimistic)
If CaminhoImagem.Length > 0 Then
mstream.Type = ADODB.StreamTypeEnum.adTypeBinary
mstream.Open()
mstream.LoadFromFile(CaminhoImagem)
[ô]rs.Fields(NomeCampoImage).Value = mstream.Read
rs(0).Value = mstream.Read
rs.Update()
End If
mstream.Close()
rs.Close()
Return True
Else
Return False
End If
Catch ex As Exception
MessageBox.Show(ex.Message, [Ô]Salva Imagem Banco de Dados[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
Return False
End Try
End Function
Estruttura da Tabela
Create Table
CREATE TABLE 'unsiformulario' (
'CodigoForm' bigint(3) NOT NULL,
'Descricao' varchar(30) NOT NULL,
'Nome' varchar(30) NOT NULL,
'CodigoModulo' bigint(3) NOT NULL,
'DescricaoModulo' varchar(30) NOT NULL,
'CodigoMenu' bigint(3) NOT NULL,
'DescricaoMenu' varchar(30) NOT NULL,
'CodigoSubMenu1' bigint(3) NOT NULL DEFAULT [ô]0[ô],
'DescricaoSubMenu1' varchar(30) NOT NULL DEFAULT [ô][ô],
'CodigoSubMenu2' bigint(3) NOT NULL DEFAULT [ô]0[ô],
'DescricaoSubMenu2' varchar(30) NOT NULL DEFAULT [ô][ô],
'Status' char(1) NOT NULL DEFAULT [ô]A[ô],
'Icone' blob,
'Seq' bigint(20) NOT NULL AUTO_INCREMENT,
PRIMARY KEY ('CodigoForm'),
UNIQUE KEY 'SeqInc' ('Seq')
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1
Encerre este post e abra no Vb6.
Postou no net.
Seu código é de Vb6.
Postou no net.
Seu código é de Vb6.
Citação:Encerre este post e abra no Vb6.
Postou no net.
Seu código é de Vb6.
Try
Catch ex As Exception
End Try
não saiba que VB6 tinha Try Catch....
Citação:esta me retornando este erro nesta função, alguem podera me ajudar, desde ja agradeço a atenção.
qual seria o erro que eu não consegui identificar.
Na verdade ele está usando as tecnologias antigas dentro do vb.net, o que é perfeitamente possÃvel.
Acho que você inverteu a ordem de execução no codigo acima, pois você está abrindo para depois localizar o arquivo. Tente assim e veja se funciona:
Citação:f CaminhoImagem.Length > 0 Then
mstream.Type = ADODB.StreamTypeEnum.adTypeBinary
mstream.Open()
mstream.LoadFromFile(CaminhoImagem)
Acho que você inverteu a ordem de execução no codigo acima, pois você está abrindo para depois localizar o arquivo. Tente assim e veja se funciona:
f CaminhoImagem.Length > 0 Then
mstream.Type = ADODB.StreamTypeEnum.adTypeBinary
mstream.LoadFromFile(CaminhoImagem)
mstream.Open()
Tópico encerrado , respostas não são mais permitidas