Delphi e Interbase

Delphi

23/12/2003

Olá Pessoal,

É a primeira vez que utilizo o forum, estou iniciando no delphi, e como todo iniciante estou cheio de dúvidas, por exemplo esta:

tenho uma tabela no interbase com dois campos (cod e nome), onde contem uma stored procedure para criar um novo número para o código.

até ai tudo bem, no delphi tem um form com dois edits, onde o primeiro recupera o valor gerado pela stored procedure, no mesmo form existe três botões, que são respectivamente: ´novo registro´, ´cadastrar´ e ´fechar´, o primeiro faz com que o edit1 seja preenchido com o valor do generator e automaticamente liga o segundo edit, possibilitando assim a inserção, então resumindo como faço para que os dados que estão nos edits sejam passados para o interbase quando eu clicar no botão ´cadastrar´.

Se alguém souber de algum tutorial que eu possa baixar eu agradeço.

Valeu
Paulo


Oadventista

Oadventista

Curtidas 0

Respostas

Biffi

Biffi

23/12/2003

Quais componentes voce esta utilizando para acesar o banco de dados (preencher o edit1)?


GOSTEI 0
Oadventista

Oadventista

23/12/2003

Estou utilizando o IBDataBase, o IBTransaction e o IBStoredProcedure


GOSTEI 0
Biffi

Biffi

23/12/2003

Eu normalmente utilizo os componentes dbexpress, mas acredito que tbem funcione.

IBTable1.Insert;
IBTable1.FieldByName(´CODIGO´).AsInteger := StrToInt(EDIT1.TEXT);
IBTable1.FieldByName(´NOME´).AsString := EDIT2.TEXT;
IBTable1.Post;
IBTable1.ApplyUpdates;

espero ter ajudado
caso naum funcione retorne que terei prazer em ajuda-lo(estou um pouco ocupado - naum tive tempo de testar)


GOSTEI 0
Oadventista

Oadventista

23/12/2003

Olha deu o seguinte pau, quando eu clico para cadastrar ele me retorna um erro, dizendo que ocorreu um erro no ibtable1 e que o mesmo é fechado, dai o depurador marca a seguinte linha:

procedure TFormExemplo.ButtonCadastrarClick(Sender: TObject);
begin
if (EditNome.Text = ´´) then
begin
FormErro.showmodal;
EditNome.SetFocus;
end;
{Executa o insert na tabela}
IBTable1.Insert;
>>> IBTable1.FieldByName(´CAMPO1´).AsInteger := StrToInt(EditCod.Text);
IBTable1.FieldByName(´CAMPO2´).AsString := EditNome.Text;
IBTable1.Post;
IBTable1.ApplyUpdates;
end;


GOSTEI 0
Biffi

Biffi

23/12/2003

antes do evento deste botão, você abriu o ibtable1? Se naum provavelmente é este o erro, experimente adicionar antes do ´IBTable1INSERT´ a linha ´IBTable1.Open´. Se voce ja abriu a tabela antes, fica mais facil se voce me enviar um trecho do codigo para eu dar uma olhada.

t+


GOSTEI 0
Oadventista

Oadventista

23/12/2003

Cara, Valeu a ajuda, deu certo com .open

Valeu mesmo.

Atenciosamente
Paulo


GOSTEI 0
POSTAR