parametro null bde

15/04/2014

0

Olá,

Estou convertendo um sistema de Delphi 5 para o Delphi XE2. E me deparei com uma situação utilizando o BDE. No delphi XE2 ele não aceita passar null para um campo que é uma Foreign Key da seguinte forma que é a forma como esta funcionando atualmente no Delphi 5:
ParamByName('ID').datatype := ftInteger;


Erro que ocorre no Delphi xe2 com BDE:
No primary key value for foreign key 'FK_Codigo' in table TBPEDIDO


*Outras formas que Tentei e não deu certo no Delphi xe2 com BDE:
assim
ParamByName('ID').datatype := ftInteger;
ParamByName('ID').value := NULL;

assim
ParamByName('ID').DataType := ftstring;
ParamByName('ID').Clear;

assim
ParamByName('ID').DataType := ftstring;
ParamByName('ID').Bound := true;

assim
ParamByName('ID').Value := null;

assim
ParamByName('ID').IsNull;

A unica forma que consegui fazer funcionar no delphi xe2 com bde foi colocando nullif no comando sql:
SQL.ADD('INSERT INTO TESTEA(ID,NOME) VALUES(nullif(:ID,''''),:NOME)');

Porém isso implica em fazer essa alteração em uma grande escala de codigo fonte. A pergunta é alguém sabe uma outra forma que funcione sem precisar de uma alteração tão brusca.
obs: testei com outros componente e parece que o problema está no BDE.


att
Rodrigo Moraes
Rodrigo-moraes

Rodrigo-moraes

Responder

Posts

15/04/2014

Cauê Nishijima

Só uma dúvida, porque ainda utiliza BDE?
Responder

15/04/2014

Rodrigo-moraes

Só uma dúvida, porque ainda utiliza BDE?

Bom hoje o BDE está nas entranhas de todo sistema, e como a troca de componente não seria um processo tão simples deixamos-os para um segundo momento. Sabemos que eles está obsoleto e iremos sim troca-lo. Mas inicialmente estamos apenas trocando de IDE.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar