Fórum Como passar um valor nulo para um parametro de uma SQL #51409
25/06/2005
0
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
Curtir tópico
+ 0Posts
25/06/2005
Adriano Santos
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.
Gostei + 0
26/06/2005
Ant.carlos/sp
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
Gostei + 0
26/06/2005
Adriano Santos
Eis a dúvida das dúvidas...
Cara, fiz uns testes aqui e tb não consegui. Doidera né?
Gostei + 0
26/06/2005
Bon Jovi
SQLDataSet1.ParamByName(´xx´).Clear;
ou:
SQLDataSet1.ParamByName(´xx´).Value := null;
Gostei + 0
26/06/2005
Adriano Santos
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...
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:
Gostei + 0
28/06/2005
Bon Jovi
Gostei + 0
14/07/2005
Ant.carlos/sp
[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
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)