Fórum Como passar um valor nulo para um parametro de uma SQL #51409

25/06/2005

0

eX: wITH Sql_Dados do Begin
Sql.Add(´SELECT CODCLI, NOME FROM CLIENTES´);
Sql.Add(´WHERE (CODCLI=:PCODCLI) or (:TODOS = 1)´);
Params.ParamByName(´Pcodcli´).AsInteger := 1;
Params.ParamByName(´Todos´).AsInteger := 0;
Open;
End;

Como passar um valor nulo para um parametro Pcodcli/Todos sem ser o Zero ?


Desde já meus agradecimentos, a quem puder me ajudar.

T+

ANT.CARLOS/SP


Ant.carlos/sp

Ant.carlos/sp

Responder

Posts

25/06/2005

Adriano Santos

Cara, eu acho que viajei na maionese nesse comando, mas tenta isso:

Params.ParamByName(´Todos´).AsValue := Null;

Não testei. Eu sei que se estivesse digitando o comando dentro do banco, tipo no IbConsole por exemplo você poderia colocar direto o Null ex:


UPDATE TABELA SET CAMPO = NULL WHERE CAMPO = 0

isso funcionaria mesmo para select.


Responder

Gostei + 0

26/06/2005

Ant.carlos/sp

Caro amigo!
Obrigado pela atenção, mas este comando não é aceito como valor de parametro:

[color=red:5f95975863]Cara, eu acho que viajei na maionese nesse comando, mas tenta isso:

Params.ParamByName(´Todos´).AsValue := Null; [/color:5f95975863]

T+

ANT.CARLOS/SP


Responder

Gostei + 0

26/06/2005

Adriano Santos

Caramba,

Eis a dúvida das dúvidas...
Cara, fiz uns testes aqui e tb não consegui. Doidera né?


Responder

Gostei + 0

26/06/2005

Bon Jovi

tenta assim:
SQLDataSet1.ParamByName(´xx´).Clear;
ou:
SQLDataSet1.ParamByName(´xx´).Value := null;


Responder

Gostei + 0

26/06/2005

Adriano Santos

Bon Jovi, não funcionou cara, mas também não deu erro.

Aconteceu que não trouxe absolutamente nada no resultado. Eu cadastrei na tabela teste que criei quatro registros, sendo dois com um dos campos nulo, e tentei retornar os registros nulos e nada.

deve ter uma solução isso, vamos vasculhar...


Responder

Gostei + 0

27/06/2005

Sandra

[...] or (:TODOS = 1)´);
[...]
       Params.ParamByName(´Todos´).AsInteger := 0;


Se TODOS é um parâmetro, por que no where = 1 e depois, é passado o valor 0(zero) para ele? :roll:


Responder

Gostei + 0

28/06/2005

Bon Jovi

Foi mal, só tinha visto a questao relacionada a como atribuir null no parametro.


Responder

Gostei + 0

14/07/2005

Ant.carlos/sp

Para Sandra.


[color=red:543756f4ec][color=orange]Código:
[...] or (:TODOS = 1)´);
[...]
Params.ParamByName(´Todos´).AsInteger := 0;


Se TODOS é um parâmetro, por que no where = 1 e depois, é passado o valor 0(zero) para ele? [/color:543756f4ec][/color]


---------------------------------------
WITH Sql_Dados do Begin
Sql.Add(´SELECT CODCLI, NOME FROM CLIENTES´);
Sql.Add(´WHERE (CODCLI=:PCODCLI) or (:TODOS = 1)´);
Params.ParamByName(´Pcodcli´).AsInteger := 1;
Params.ParamByName(´Todos´).AsInteger := 0;
Open;
End;

Explicacao:
Somente será filtrado todos, se o param TODOS for igual a 1 casos contrário será pequisado somente pelo param. Pcodcli
Veja o ´OR´
T+

ANT.CARLOS


Responder

Gostei + 0

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

Aceitar