Inserir dados Delphi 5 x Firebrid 1.0 ?
Ola, Pessoal !
Estou usando a paleta Interbase do Delphi 5
os componentes que eu utilizei são : DataSource, IBDataset, IBDataBase, IBTransaction e a conexão eu consegui mas a gravação de dados não...
na propriedade InsertSql do componente IBDataset esta dessa forma
insert into clientes(codigo,nome,endereco,bairro,cidade,cep,telefone1,telefone2)
values(:codigo,:nome,:endereco,:bairro,:cidade,:cep,:telefone1,:telefone2)
e no Botão de Gravar esta assim
Try
Screen.Cursor := crSQLWait;
If Not(IBTransaction1.InTransaction) Then
IBTransaction1.StartTransaction;
qryClientes.Post;
qryClientes.ApplyUpdates;
ibTransaction1.CommitRetaining;
Finally
Screen.Cursor := crDefault;
End;
e no formClose
ibTransaction1.Commit;
se alguem puder me ajudar eu agradeço
e se alguem quiser o pequeno projeto para analisar me envie seu e-mail para donidelphi@bol.com.br
Estou usando a paleta Interbase do Delphi 5
os componentes que eu utilizei são : DataSource, IBDataset, IBDataBase, IBTransaction e a conexão eu consegui mas a gravação de dados não...
na propriedade InsertSql do componente IBDataset esta dessa forma
insert into clientes(codigo,nome,endereco,bairro,cidade,cep,telefone1,telefone2)
values(:codigo,:nome,:endereco,:bairro,:cidade,:cep,:telefone1,:telefone2)
e no Botão de Gravar esta assim
Try
Screen.Cursor := crSQLWait;
If Not(IBTransaction1.InTransaction) Then
IBTransaction1.StartTransaction;
qryClientes.Post;
qryClientes.ApplyUpdates;
ibTransaction1.CommitRetaining;
Finally
Screen.Cursor := crDefault;
End;
e no formClose
ibTransaction1.Commit;
se alguem puder me ajudar eu agradeço
e se alguem quiser o pequeno projeto para analisar me envie seu e-mail para donidelphi@bol.com.br
Doni
Curtidas 0
Respostas
Afarias
26/12/2003
|na propriedade InsertSql do componente IBDataset esta dessa forma {...}
O InsertSQL está correto!
|e no Botão de Gravar esta assim
|If Not(IBTransaction1.InTransaction) Then
|IBTransaction1.StartTransaction;
esse código acima não faz sentido. o IBDataSet só permanece aberto enquanto há uma transação aberta, sendo assim sempre será TRUE.
|qryClientes.ApplyUpdates;
Não use ApplyUpdates -- a não ser q esteja usando CachedUpdates -- o q em geral é desnecessário e uma má alternativa -- se precisa de atualizações em cache, eu sugiro q use ClientDataSets
Aproveitando, se seu componente está com CachedUpdates=False e não deu erro no ApplyUpdates, então ATUALIZE SEU IBX.
|e no formClose:: ibTransaction1.Commit;
Perfeito!
---------------------------
Não parece haver nada de errado no código ... vc não está recebendo nenhum erro na hora de gravar???
T+
O InsertSQL está correto!
|e no Botão de Gravar esta assim
|If Not(IBTransaction1.InTransaction) Then
|IBTransaction1.StartTransaction;
esse código acima não faz sentido. o IBDataSet só permanece aberto enquanto há uma transação aberta, sendo assim sempre será TRUE.
|qryClientes.ApplyUpdates;
Não use ApplyUpdates -- a não ser q esteja usando CachedUpdates -- o q em geral é desnecessário e uma má alternativa -- se precisa de atualizações em cache, eu sugiro q use ClientDataSets
Aproveitando, se seu componente está com CachedUpdates=False e não deu erro no ApplyUpdates, então ATUALIZE SEU IBX.
|e no formClose:: ibTransaction1.Commit;
Perfeito!
---------------------------
Não parece haver nada de errado no código ... vc não está recebendo nenhum erro na hora de gravar???
T+
GOSTEI 0
Doni
26/12/2003
Simplesmente não grava e o registro fica com campo codigo com zero.
GOSTEI 0
Afarias
26/12/2003
Já tentou ver por aqui::
http://delphiforum.icft.com.br/forum/viewtopic.php?t=30575
T+
http://delphiforum.icft.com.br/forum/viewtopic.php?t=30575
T+
GOSTEI 0