GARANTIR DESCONTO

Fórum Problemas com MySQL e Delphi 6 - Field must have a value #239934

26/06/2004

0

Estou tendo problemas ao tentar inserir um registro no MySQL, está dando o seguinte erro:

Project xxxxxxxx raised exception class EDatabaseError with message ´Field ´ID´ must have a value´.

Este campo é do tipo int e é autoincrementador.

Diretamente, no banco funciona, mas no Delphi, não!

Estou utilizando TSQLDataSet + SQLDataSetProvider + TClientDataSet + TDataSet.

Este erro ocorre quando dou um Post e depois um ApplyUpdates(-1);

Fazendo só o ApplyUpdates(-1), também dá o mesmo erro.


Daaneto

Daaneto

Responder

Posts

26/06/2004

Sandra

daaneto,

Não conheço o MySQL mas, de acordo com a tradução da mensagem de erro apresentada, ´o campo ID deve ter um valor´, ou seja, significa que no momento do post, o campo está vazio.

Sendo este campo do tipo inteiro e autoincrementador, verifique em qual evento você está solicitando ao banco para criar o novo código. É no BeforePost, NewRecord? Qual? Talvez, pode estar aí a origem do problema apresentado na mensagem de erro.


Responder

Gostei + 0

26/06/2004

Daaneto

O código para salvar no banco (Post / ApplyUpdate) é colocado no onclick de um botão do formulário (botão Salvar).

Os componentes de banco (TSQLDataSet + SQLDataSetProvider + TClientDataSet + TDataSet), estão em um DataModule.


Responder

Gostei + 0

27/06/2004

Daaneto

Ainda estou tendo problema com a inserção...
Alguém pode ajudar?


Responder

Gostei + 0

25/12/2004

Fjsx

Caro, o campo está com a propriedade REQUIRED como TRUE ?
Se sim, o validador do campo é disparado antes do dado ir para o BD.

Se não for isso, me avisa.


Responder

Gostei + 0

27/12/2004

Reginaldo174

Amigo, trabalho com Mysql há uns 5 meses e pude notar que estes metodos de gravação não funcionam. Tive muitos problemas com eles pois uma hora gravava outra hora não. Descobri que isso se dava por causa dos compones DB. Solucionei utilizando edits e gravando utilizando query assim : insert into [tabela] (campo1,campo2)values(:campo1,:campo2)

passando :campo1,:campo2 com parametros.

assim funciona corretamente e afirmo que Mysql é o Banco de dados mais rápido que já trabalhei.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar