Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Delphi apontando para SQL


jean_bhz

Pergunta

Prezados, bom dia!

Tenho um form simples contendo um componente timage, especificamente image1.
Já consegui fazer o loadfromfile buscando a imagem em c:, carregando o image1, funciona ok. 
Acontece que, após carregar o image1 não estou conseguindo gravar junto a um banco sql. 
Abaixo o código e sentença:
 
procedure Tfprincipal.BitBtn1Click(Sender: TObject);
var ximagem: tpicture;
ADOConnection1.Connected := true;
Image1.Picture.LoadFromFile('c:\projetos\ultra\img1.jpg');
ximagem := Image1.Picture;
timagem.sql.clear;
timagem.Sql.Add('INSERT INTO TIMAGEM(NUM_REFERENCIA,IMG_IMAGEM)VALUES');
timagem.sql.add('(''' + '123' + ''','''+ximagem+''')');
timagem.ExecSQL;
 
Note que minha maneira de codificar é bem simples. 
ao compilar estou deparando com o erro:
Incompatible types: 'String' and 'Timage'
o campo na tabela sql está assim:
 
Column Name    Data Type   Length   Allow Nulls
IMG_IMAGEM       IMAGE       16
 
Então, o que necessito é conseguir gravar a imagem contida neste componente dentro da tabela. 
a carga da imagem está acontecendo corretamente. 
 
Muito obrigado. 
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
  • 0

Vou ver.

Muito obrigado, Jhonas. 

Bom dia, Boa Sorte!

Jhonas!

Acontece que o erro está ocorrendo ainda durante o processo da compilação, antes da escrita junto ao banco. 

var ximagem: tpicture;

ximagem := Image1.Picture;
timagem.sql.clear;
timagem.Sql.Add('INSERT INTO TIMAGEM(NUM_REFERENCIA,IMG_IMAGEM)VALUES');
timagem.sql.add('(''' + '123' + ''','''+ximagem+''')');
timagem.ExecSQL;

negritei, acima, a variável ximagem que é quem está causando o erro, ainda na compilação, com a mensagem:

Incompatible types: 'String' and 'Timage'

já alterei o tipo de campo junto ao banco, de image para varbinary, conforme voce orientou, mas ainda não consigo fazer o teste da escrita porcausa da compilação. 

Se puder me ajudar, novamente, ficarei muito grato!

 

 

Imagino que tenho que converter a variavel ximagem, que é picture para string para, ai sim, dar certo na sentença sql.

Porém não sei como fazê-lo.

 

Obg.

Link para o comentário
Compartilhar em outros sites

  • 0

var ximagem: tpicture;

Incompatible types: 'String' and 'Timage'

Tipos incompativeis: String e Timage

timagem.Sql.Add('INSERT INTO TIMAGEM(NUM_REFERENCIA,IMG_IMAGEM)VALUES');

timagem.sql.add('(''' + '123' + ''','''+ximagem+''')');

Obs: veja que voce está adicionando uma string ( 'ximagem' ) e não uma imagem

observe os apostrofes

Caso não tenha entendido....

Imagino que tenho que converter a variavel ximagem, que é picture para string para, ai sim, dar certo na sentença sql.

se voce converter ximagem para string, vai continuar o erro, porque voce vai estar tentando gravar uma string num campo binario.

Nos links que te passei tem exemplos de como gravar um foto no banco de dados

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...