Array
(
)

DBExpress delphi campo autoincremento

Pereiramarcos
   - 27 nov 2005

ola a todos

estou iniciando no delphi, e fazendo um pequeno cadastro com delphi/firebird.

tenho uma tabela cliente com um campo autoncremento. ja criado e funcionando pelo firebird.

so que quando mando gravar, no delphi da o seguinte erro

edatabaseerror with message ´field´ ´codigo´ must have a value , estou usabdo DBexpress, clientedataset, dartasetprovider etc....

HELPPPPPP!!!!!!!!!!!!!!!!!!!!!!!!! pelo amor de Deus estou desde sabado ate hoje............. :(


Vinicius2k
   - 27 nov 2005

Colega,

Configure a propriedade ´Required´ do TField ´Codigo´ para ´False´, no TSQLDataSet (ou TSQLQuery) e no TClientDataSet.

Como, provavelmente, o auto-incremento está sendo disparado por uma trigger, você precisará dar um ´Refresh´ no ClientDataSet para visualizar o valor que foi atribuído ao campo.

PS: Expressões apelativas são contra as [url=http://forum.clubedelphi.net/viewtopic.php?t=6689]Regras de Conduta do Fórum[/url]. Como você é um membro recente da comunidade, peço que leia-as a fim de evitar problemas. :wink:


Pereiramarcos
   - 28 nov 2005

Peco desculpas pelo termo apelativo. Não mas se repetirá.

obrigado pela resposta farei o teste.

ja havia feito isso TField ´Codigo´ para ´False´
TSQLDataSet --->
(ou TSQLQuery) _ --> eu sei que e um ou outro, mas isso eu nao sabia

e no TClientDataSet. ´aqui eu ja havia feito´

esta sim sendo disparado por uma trigger.

Onde farei isso ´Refresh´ no ClientDataSet.
logo apos o applyupdate.


obrigado Vinicius2K


Vinicius2k
   - 28 nov 2005


Citação:
Onde farei isso ´Refresh´ no ClientDataSet.
logo apos o applyupdate.


ClientDataSet1.ApplyUpdates(0);
ClientDataSet1.Refresh;

T+


Pereiramarcos
   - 28 nov 2005


Citação:

Citação:
Onde farei isso ´Refresh´ no ClientDataSet.
logo apos o applyupdate.


ClientDataSet1.ApplyUpdates(0);
ClientDataSet1.Refresh;

T+



o erro continua o codigo ja esta como false no required do sql e do dataset.

->linha do erro DtMt.CDtSet.ApplyUpdates(0);
DtMt.CDtSet.Refresh;


Pereiramarcos
   - 28 nov 2005

:? naõ sei se ajuda mas o meu Tsqldataset
Commandtype = cTable

agradeco a ajuda


Pereiramarcos
   - 28 nov 2005

:idea: CARA EU consegui refiz tudo desde o inicio, e realmente era o problema do required

muito obrigado, pela forca.