Field quot;Idquot; must have a value ...?
Estou com problemas na inserção de clientes usando um [b:7219b3e425]sqlquery [/b:7219b3e425]na paleta dbexpress e um [b:7219b3e425]clientdataset [/b:7219b3e425]da paleta dataaccess. Tenho os campos Id (Chave Primária e AutoIncremento), Nome(String) e Endereco(String) e utilizo o método ClientDataSet1.INSERT no botão Novo e ClientDataSet1.Post/ClientDataSet1.applyUpdates(0) no botão Gravar. Acontece que ao Gravar dá a msg de erro ´Field ´ID´ must have a value´. Não sei o que fazer, alguém pode me ajudar, por favor!
Obrigado,
Alexandra.
Obrigado,
Alexandra.
Aleguerra
Curtidas 0
Respostas
Moliva
04/10/2004
Vc não especificou valor para um campo requerido.
Apesar deste campo ser gerado automaticamente no banco, experimente passar uma valor temporário (-1) por exemplo.
Ao gravar no banco este valor será susbtituído pelo valor definitivo.
qq. dúvida escreva
[]s
Moliva
Apesar deste campo ser gerado automaticamente no banco, experimente passar uma valor temporário (-1) por exemplo.
Ao gravar no banco este valor será susbtituído pelo valor definitivo.
qq. dúvida escreva
[]s
Moliva
GOSTEI 0
Osocram
04/10/2004
Ale..
O prob esta no autoincremento q deve estar marcado como NotNull ou Required... e o autoincremento so deve ser executado depois do post... e ateh isso o campo ainda esta vazio e enton dah esse erro...
vc pod usar um algo do tipo
Talvez o codigo tenha algum erro... pois eu fiz no braco agora... qq duvida manda ae q eu respondo...
Ah... dae vc pod fazer o seu campo ID receber o valor da function no evento BeforeInsert
O prob esta no autoincremento q deve estar marcado como NotNull ou Required... e o autoincremento so deve ser executado depois do post... e ateh isso o campo ainda esta vazio e enton dah esse erro...
vc pod usar um algo do tipo
function Incrementa:integer;
try
qry2 := Tquery.Create(self);
qry2.DatabaseName := ´SIGC_LOCAL´;
With (qry2) Do Begin
Sql.Add(´select Max(Id) from Tabela ´);
Prepare;
Open;
if recordCount >0 then
result := field[0].asInteger
else
result := 0;
End; //with
Finally
qry2.free;
End;
Talvez o codigo tenha algum erro... pois eu fiz no braco agora... qq duvida manda ae q eu respondo...
Ah... dae vc pod fazer o seu campo ID receber o valor da function no evento BeforeInsert
GOSTEI 0
Martins
04/10/2004
Colega!
Pegue o campo [b:78a8803d4b]ID[/b:78a8803d4b], que é AutoIncremento, e com certeza, Requerid, marque a opção Requerid para false e pronto.
Hasta la vista!
Espero ter ajudado.
Pegue o campo [b:78a8803d4b]ID[/b:78a8803d4b], que é AutoIncremento, e com certeza, Requerid, marque a opção Requerid para false e pronto.
Hasta la vista!
Espero ter ajudado.
GOSTEI 0
Aleguerra
04/10/2004
Obrigado pessoal coloquei o campo ID como Required = false e deu certo
Valeu Martins sua Dica foi show.
Obrigado
Alexandra.
Valeu Martins sua Dica foi show.
Obrigado
Alexandra.
GOSTEI 0
Martins
04/10/2004
Estaremos aqui sempre q precisar, esse é o nosso papel!.
Até a próxima.
Até a próxima.
GOSTEI 0