Ir para conteúdo
Fórum Script Brasil

skynerd

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Sobre skynerd

skynerd's Achievements

0

Reputação

  1. 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!
  2. Boa Noite a todos. Programo a algum tempo em C++ Builder 5 e estou migrando para o Delphi 2010 da Embarcadero e gostaria de saber se alguém do Forum pode me ajudar neste tópico. Estou fazendo uma aplicação em Delphi e em uma das minhas telas, preciso pesquisar o código do cliente digitado no Edit1.Text e apresentar o resto dos dados nos Edits restantes... no C++ eu utilizava a linha de código abaixo. Gostaria de saber se no Delphi existe um método mais fácil de se posicionar o banco de dados para fazer esta pesquisa "Sem utilizar comandos SQL Query ou DBGrid". (mais se existir um comando melhor em SQL, beleza!) Segue abaixo o comando em C++ que posiciona o banco de dados no registro desejado e apresenta o resto dos dados. TLocateOptions SearchOptions; SearchOptions.Clear(); SearchOptions << loPartialKey; if(DataModule2->IBTable1->Locate("codigo",Edit1->Text,SearchOptions)) { Edit1->Text = DataModule2->IBTable1->FieldByName("codigo")->AsString; Edit2->Text = DataModule2->IBTable1->FieldByName("descricao")->AsString; ComboBox1->Text = DataModule2->IBTable1->FieldByName("classificacao")->AsString; ComboBox2->Text = DataModule2->IBTable1->FieldByName("autor")->AsString; ComboBox3->Text = DataModule2->IBTable1->FieldByName("chave")->AsString; MaskEdit5->Text = DataModule2->IBTable1->FieldByName("data")->AsString; Memo1->Lines->Add(DataModule2->IBTable1->FieldByName("historico")->AsString); Image1->Picture = DBImage1->Picture; } Ainda não testei mudar o (-> do C++) para ( . no Delphi ) na rotina acima, pois não sei se existe um outro método no Delphi. OBS: Estou utilizando um banco de dados GDB Interbase gerado pelo IBExpert. Se existir um outro método gostaria de saber. Obrigado pela atenção de todos.
×
×
  • Criar Novo...