ClientDataSet não aceita o parametro do tipo Data

Delphi

23/06/2004

Oi gente,

Estou migrando para a dupla (Delphi 7 c/ Interbase 6.5), e tá dificil de fazer com que o ClientDataSet aceite o parametro do tipo Data em tempo de execução, já tentei mudar o tipo do paramentro do ClienteDataSet e da Função (abaixo) para DateTime e SQLTimeStamp e até String, sempre dá o seguinte erro:

´Could not convert variant of type (null) into type (string)´

Sendo que ja conferi todos os parametros durante a execução e nenhum deles fica Nullo (sem valor), alguem sabe o q poderia ser?

Minha função:

function TDMLevant.SeleInspe(CNPJ:string; SETOR:string; DATA: string; LOGIN:string):integer;
begin
with cdsInspCada do
begin
Close;
Params.ParamByName(´CNPJ´).AsString := CNPJ;
Params.ParamByName(´SETOR´).AsString := SETOR;
Params.ParamByName(´LOGIN´).AsString := LOGIN;
Params.ParamByName(´DATA´).AsDate := StrToDate(DATA);
Open;
result := RecordCount;
end;
end;

Valeu gente
Carlinhos


Carvajal

Carvajal

Curtidas 0

Respostas

Afarias

Afarias

23/06/2004

como vc está passando os parâmetros na chamada da função?


T+


GOSTEI 0
Carvajal

Carvajal

23/06/2004

A função é chamada da seguinte forma

if (DMLevant.SeleInspe(DM.cdsEmprSeleCNPJEMPR.Value, SetoSele, DataSele, LogiSele) > 0) then
StatusBar1.Panels.Items[0].Text := ´Conectado´ else
MessageDlg(´Não foi possível localizar a Inspeção!´,MtError,[MbOk],0);

Todos os parametros são do tipo string e estão sendo carregados devidamente, sendo que a data segue o formato: dd/mm/yyyy, será que pode ser isso?

Valeu


GOSTEI 0
Afarias

Afarias

23/06/2004

troque::

DM.cdsEmprSeleCNPJEMPR.Value

por::

DM.cdsEmprSeleCNPJEMPR.AsString


e, espero que SetoSele, DataSele e LogiSele sejam variáveis String!


T+


GOSTEI 0
Carvajal

Carvajal

23/06/2004

:(

Ainda não foi desta vez amigo, confirmei o tipo das variaveis (SetoSele, DataSele, LogiSele), todas são string e foram devidamente carregados antes da execução da função.

Tentei mudar a variavel DATA de string para DateTime, fazendo os devido ajuste, e nada, só o erro que muda, em vez de dar pau por valor nulo em string, dá por valor nulo em Double, não sei de onde ele tira esse valor nulo.

Minha Base foi criada em Dialeto 1, influi em alguima coisa?


Valeu a força
CARLINHOS


GOSTEI 0
Afarias

Afarias

23/06/2004

mas vc mudou o

DM.cdsEmprSeleCNPJEMPR.Value

por::

DM.cdsEmprSeleCNPJEMPR.AsString

?????



T+


GOSTEI 0
Carvajal

Carvajal

23/06/2004

Desculpe se não ficou claro mas mudei sim, cheguei a pensar que resolveria, por isso a decepção.

Tudo indica que o problema ocorre na execução da linha:

Params.ParamByName(´DATA´).AsDate := StrToDate(DATA);

O Erro ocorre sempre quando referencia um campo tipo DATA ou melhor SQLTimeStamp, engraçado é q o SQL roda redondo no IBExpert e no IBConsole :!:

:cry:


GOSTEI 0
POSTAR