ClientDataSet não aceita o parametro do tipo Data
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
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
Curtidas 0
Respostas
Afarias
23/06/2004
como vc está passando os parâmetros na chamada da função?
T+
T+
GOSTEI 0
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
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
23/06/2004
troque::
DM.cdsEmprSeleCNPJEMPR.Value
por::
DM.cdsEmprSeleCNPJEMPR.AsString
e, espero que SetoSele, DataSele e LogiSele sejam variáveis String!
T+
DM.cdsEmprSeleCNPJEMPR.Value
por::
DM.cdsEmprSeleCNPJEMPR.AsString
e, espero que SetoSele, DataSele e LogiSele sejam variáveis String!
T+
GOSTEI 0
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
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
23/06/2004
mas vc mudou o
DM.cdsEmprSeleCNPJEMPR.Value
por::
DM.cdsEmprSeleCNPJEMPR.AsString
?????
T+
DM.cdsEmprSeleCNPJEMPR.Value
por::
DM.cdsEmprSeleCNPJEMPR.AsString
?????
T+
GOSTEI 0
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:
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