Fórum ClientDataSet não aceita o parametro do tipo Data #239176

23/06/2004

0

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

Responder

Posts

23/06/2004

Afarias

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


T+


Responder

Gostei + 0

23/06/2004

Carvajal

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


Responder

Gostei + 0

23/06/2004

Afarias

troque::

DM.cdsEmprSeleCNPJEMPR.Value

por::

DM.cdsEmprSeleCNPJEMPR.AsString


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


T+


Responder

Gostei + 0

23/06/2004

Carvajal

:(

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


Responder

Gostei + 0

23/06/2004

Afarias

mas vc mudou o

DM.cdsEmprSeleCNPJEMPR.Value

por::

DM.cdsEmprSeleCNPJEMPR.AsString

?????



T+


Responder

Gostei + 0

23/06/2004

Carvajal

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:


Responder

Gostei + 0

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

Aceitar