Sou iniciante em C++ Builder 5 e estou migrando para Rad Studio C++ 2010 e meu primeiro projeto seria fazer uma conexão com o banco de dados Firebird 2.5 através dos drivers ODBC do Firebird utilizando também os componentes ADOTable do C++ 2010. A grande sacada final seria gravar uma imagem tanto Jpeg como Bmp de uma forma mais fácil no banco de dados Firebird. Utilizei a seguinte engenharia e queria saber se existe uma forma mais simples ou se estou fazendo alguma besteira futura.
#include <vcl\Clipbrd.hpp>
#include "jpeg.hpp"
criei a rotina abaixo para chamar a função OpenPictureDialog1 para visualizar a imagem selecionada.
Criei a função abaixo para colar a figura do Image1 no DBImage1 que já estava conectado à tabela do banco de dados.
void cimage();
void cimage()
{
Form1->Image1->Visible = true;
TClipboard * novo = new TClipboard();
novo->Assign(Form1->Image1->Picture);
Form1->DBImage1->PasteFromClipboard();
novo->Clear();
delete novo;
}
Para gravar os dois Edits de teste e a imagem no DBImage criei a rotina abaixo que após dar um Append no banco de dados e gravar os dois Edits, chama a função cimage() que cola a imagem no DBImage1 e depois chama o POST() para gravar definitivamente no banco de dados o que já está colado no DBImage1.
Sei que existem vários posts a respeito deste assunto no Forum, só que não achei com ADO e C++ 2010 ... Pelo banco de dados INTERBASE SMP 2009 que vinha no pacote de instalação dava muito erro
Se alguém souber de uma rotina mais fácil favor postar. Obrigado!
Pergunta
skynerd
Oi galera!
Sou iniciante em C++ Builder 5 e estou migrando para Rad Studio C++ 2010 e meu primeiro projeto seria fazer uma conexão com o banco de dados Firebird 2.5 através dos drivers ODBC do Firebird utilizando também os componentes ADOTable do C++ 2010. A grande sacada final seria gravar uma imagem tanto Jpeg como Bmp de uma forma mais fácil no banco de dados Firebird. Utilizei a seguinte engenharia e queria saber se existe uma forma mais simples ou se estou fazendo alguma besteira futura.
#include <vcl\Clipbrd.hpp>
#include "jpeg.hpp"
criei a rotina abaixo para chamar a função OpenPictureDialog1 para visualizar a imagem selecionada.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
OpenPictureDialog1->Execute();
Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName);
}
Criei a função abaixo para colar a figura do Image1 no DBImage1 que já estava conectado à tabela do banco de dados.
void cimage();
void cimage()
{
Form1->Image1->Visible = true;
TClipboard * novo = new TClipboard();
novo->Assign(Form1->Image1->Picture);
Form1->DBImage1->PasteFromClipboard();
novo->Clear();
delete novo;
}
Para gravar os dois Edits de teste e a imagem no DBImage criei a rotina abaixo que após dar um Append no banco de dados e gravar os dois Edits, chama a função cimage() que cola a imagem no DBImage1 e depois chama o POST() para gravar definitivamente no banco de dados o que já está colado no DBImage1.
void __fastcall TForm1::Button2Click(TObject *Sender)
{
ADOTable1->Append();
ADOTable1->FieldByName("codigo")->AsString = StrToInt(Edit1->Text);
ADOTable1->FieldByName("nome")->AsString = Edit2->Text;
cimage();
ADOTable1->Post();
}
Coloquei também um DBGrid para visualizar o resultado final, e deu certo... as imagens gravadas aparecem normalmente.
void __fastcall TForm1::DBGrid1DblClick(TObject *Sender)
{
Edit1->Text = ADOTable1->FieldByName("codigo")->AsInteger;
Edit2->Text = ADOTable1->FieldByName("nome")->AsString;
Image1->Picture = DBImage1->Picture;
}
Sei que existem vários posts a respeito deste assunto no Forum, só que não achei com ADO e C++ 2010 ... Pelo banco de dados INTERBASE SMP 2009 que vinha no pacote de instalação dava muito erro
Se alguém souber de uma rotina mais fácil favor postar. Obrigado!
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.