Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cacá Benelli

Parametro Null

Recommended Posts

olá galerinha, venho aqui novamente pedir aajuda de vcs para tentar me ajudar a resolver mais esse probleminha...

 

é o seguinte...estou dando um insert em uma tabela qualquer:

 

SQL.Add('INSERT INTO TESTE(NOME, SEXO, ATIVO, OBITO)');
SQL.Add('VALUES(:PNOME, :PSEXO, :PATIVO, :POBITO)');
if EdNome.Text = '' then
 Parameters.ParamByName('PNOME').Value := EdNome.Text
else
 Parameters.ParamByName('PNOME').Value := Null;
Parameters.ParamByName('PSEXO').Value := Sexo;
Parameters.ParamByName('PATIVO').Value := CBAtivo.Checked;
Parameters.ParamByName('POBITO').Value := CBObito.Checked;
ExecSQL;

 

 

eis que ocorre o problema até entao desconhecido...

 

quando o EdNome.Text está vazio, ele cai no else, e o Parametro tem que receber Null.

Só que ele da erro de parametro definido incorretamente ou algo do tipo...

 

já tentei de varias e varias maneiras, mas nenhuma funcionou... a unica que deu certo foi passando diretamente pelo SQL.Add, sem usar parametros, mas aqui o sistema TODO usa parametros, entao fica f*** ir mudando tudo...

 

já tentei .isnull, VarToStr(Null), Unassigned.... e nada

 

 

ALGUÉM DA UMA FORÇA AI =D

 

 

 

 

 

@EDIT: Na correria esqueci de mencionar que o banco de dados é o postgresql 8.3, Delphi 2009 / ADOQuery

 

PS: Ali no if do EdNome.Text é " <> " não " = " kkkkk

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que a Zebra é porque o Delphi não reconhece null e sim Nil.

 

uma das duas formas podem funcionar, não acredito que a segunda funcione, mas não custa tentar...

  Parameters.ParamByName().Value  := nil;
 Parameters.ParamByName().Value  := 'NULL';

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que a Zebra é porque o Delphi não reconhece null e sim Nil.

 

uma das duas formas podem funcionar, não acredito que a segunda funcione, mas não custa tentar...

  Parameters.ParamByName().Value  := nil;
 Parameters.ParamByName().Value  := 'NULL';

 

 

não deu certo também, o primeiro jeito ele da invalid pointer operation ou algo do tipo, porque esse "nil" ai é do tipo Pointer.

 

do segundo jeito ele salva o null como uma string, ai no banco fica como se fosse alguem chamado Null huahuaha

 

mas agora eu já refiz tudo sem passar parametros, mas queria saber se existe alguma solução pra isso...pq demoro muito pra refazer todo o comando sem parametros =D

 

vlw ai galerinha ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que a Zebra é porque o Delphi não reconhece null e sim Nil.

 

uma das duas formas podem funcionar, não acredito que a segunda funcione, mas não custa tentar...

  Parameters.ParamByName().Value  := nil;
 Parameters.ParamByName().Value  := 'NULL';

 

 

não deu certo também, o primeiro jeito ele da invalid pointer operation ou algo do tipo, porque esse "nil" ai é do tipo Pointer.

 

do segundo jeito ele salva o null como uma string, ai no banco fica como se fosse alguem chamado Null huahuaha

 

mas agora eu já refiz tudo sem passar parametros, mas queria saber se existe alguma solução pra isso...pq demoro muito pra refazer todo o comando sem parametros =D

 

vlw ai galerinha ;)

 

Broder tenta assim:

 

   Parameters.ParamByName().isnull := true;
   Ou
   Parameters.ParamByName().isnull;

 

Flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.