Como Gravar em Interbase no Delphi ?????

21/09/2004

Bom estou fazendo aplicativo em delphi com Base de Dados em Interbase, porem criei uma tabela chamada ITEM, qdo faço insercao no pelo interbase ele cria o codigo automaticamente, ja pelo delphi da uma msg :

Violation of Primary or Unique key constraint ´Integ_13´ on Table ITEM.

OBS : Lembrando que cria ( Trigger, Generators ), corretos.

no Click do Botao esta assim :

try
IbItem.Close;
IbItem.ParamByName(´Pedido´).AsFloat:= StrToFloat(Edit1.text);
IbItem.ParamByName(´Produto´).AsFloat:= StrToFloat(Edit3.text);
IbItem.ParamByName(´Qtde´).AsFloat:= StrToFloat(edit4.Text);
IbItem.ParamByName(´Unitario´).AsFloat:= StrToFloat(edit5.Text);
IbItem.ParamByName(´Total´).AsFloat:= StrToFloat(edit5.Text);
IbItem.ExecSQL;
BtnAdiciona.Enabled:= false;
IbTransacao.Commit;
except
MessageDlg(´Ouve um erro ao tentar Adicionar este item ao Pedido.´, mtError,[mbOk], 0);
IbTransacao.Rollback;
end;


Walter Faria

Respostas

21/09/2004

Martins

vejamos...
Bom estou fazendo aplicativo em delphi com Base de Dados em Interbase, porem criei uma tabela chamada ITEM, qdo faço insercao no pelo interbase ele cria o codigo automaticamente, ja pelo delphi da uma msg : Violation of Primary or Unique key constraint ´Integ_13´ on Table ITEM. OBS : Lembrando que cria ( Trigger, Generators ), corretos.


no Click do Botao esta assim : 

try 
IbItem.Close; 
IbItem.ParamByName(´Pedido´).AsFloat:= StrToFloat(Edit1.text); 
IbItem.ParamByName(´Produto´).AsFloat:= StrToFloat(Edit3.text); 
IbItem.ParamByName(´Qtde´).AsFloat:= StrToFloat(edit4.Text); 
IbItem.ParamByName(´Unitario´).AsFloat:= StrToFloat(edit5.Text); 
IbItem.ParamByName(´Total´).AsFloat:= StrToFloat(edit5.Text); 
IbItem.ExecSQL; 
BtnAdiciona.Enabled:= false; 
IbTransacao.Commit; 
except 
MessageDlg(´Ouve um erro ao tentar Adicionar este item ao Pedido.´, mtError,[mbOk&93;, 0); 
IbTransacao.Rollback; 
end;


Onde vc faz referencia ao generator criado?

Que tal tenatar configurar a propriedade GeneratorField do IBDataSet, caso seja esse seu componente...

Pois na minha humilde opnião, o q esta acontecendo é q o generator não está sendo acionado...

Reveja seu projeto.


Responder Citar

21/09/2004

Vinicius2k

Colega,

Creio que o colega Martins está correto e o incremento por generator não está sendo disparado...
- Qual coluna da sua tabela deve receber o incremento?
- Poste-nos a instrução SQL no ´IBItem´.
- Poste-nos o código de sua trigger.

T+


Responder Citar