Jump to content
Fórum Script Brasil
  • 0

Delphi apontando para SQL


Question

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 to post
Share on other sites

5 answers to this question

Recommended Posts

  • 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 to post
Share on other 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 to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      149167
    • Total Posts
      645428
×
×
  • Create New...