Help: Data nula no firebird 2.0
Bom dia amigos,
estou fazendo uma conversão de dados e não consigo de maneira alguma inserir através de sql um data nula no firebird.
Utilizo: Delphi 7 + Fire 2.0 + sqlconnection + sqldataset + datasetprovider + clientdataset
Minha instrução:
O problema é a inserção do campo datpago, tentei de todos os jeitos acima e nenhum deles funciona.
Qual a solução? Se é que existe.
Obrigado pela atenção
Mario
estou fazendo uma conversão de dados e não consigo de maneira alguma inserir através de sql um data nula no firebird.
Utilizo: Delphi 7 + Fire 2.0 + sqlconnection + sqldataset + datasetprovider + clientdataset
Minha instrução:
insert into apagar (doc,datpago) values (:doc,:datpago) parambyname(´doc´).AsString := ´DOC´ /* ParamByName(´datpago´).asdate := null; ParamByName(´datpago´).Clear; ParamByName(´datpago´).Value := 0 ParamByName(´datpago´).Asdate := StrToDate(null); ParamByName(´datpago´).IsNull; */
O problema é a inserção do campo datpago, tentei de todos os jeitos acima e nenhum deles funciona.
Qual a solução? Se é que existe.
Obrigado pela atenção
Mario
Aldus
Curtidas 0
Respostas
Wilson Brito
23/10/2008
Não informe o campo datpago no código SQL.
Caso haja necessidade de verificação, fica mais ou menos de acordo com o exemplo abaixo:
insert into apagar (doc) values (:doc) parambyname(´doc´).AsString := ´DOC´
Caso haja necessidade de verificação, fica mais ou menos de acordo com o exemplo abaixo:
if trim(data) <> ´´ then begin ... insert into apagar (doc,datpago) values (:doc,:datpago) parambyname(´doc´).AsString := ´DOC´ parambyname(´datpago´).AsDate := strtodate(data); ... end else begin ... insert into apagar (doc,data) values (:doc) parambyname(´doc´).AsString := ´DOC´ ... end;
GOSTEI 0
Aldus
23/10/2008
Olá Wilson,
mas não há opção mais profissional e trabalhosa que esta?
mas não há opção mais profissional e trabalhosa que esta?
GOSTEI 0
Joaoshi
23/10/2008
Colega, vê se ajuda:
-Crie o parametro [b:8403a6aed8]datpago[/b:8403a6aed8] como DataType [b:8403a6aed8]ftString[/b:8403a6aed8]-Crie uma funçao que retornará a data (em string) ou NULL
-ParamByName(´datpago´).Value := FuncaoVerData(UmaData);
-ParamByName(´datpago´).Value := null
-ParamByName(´datpago´).Value := ´23.10.2008´
Ex.:
FuncaoVerData(Data:String):String
begin
if Data é uma data válida then
Result := DataFormatada
else
Result := ´NULL´;
end;
Espero ter ajudado.
-Crie o parametro [b:8403a6aed8]datpago[/b:8403a6aed8] como DataType [b:8403a6aed8]ftString[/b:8403a6aed8]-Crie uma funçao que retornará a data (em string) ou NULL
-ParamByName(´datpago´).Value := FuncaoVerData(UmaData);
-ParamByName(´datpago´).Value := null
-ParamByName(´datpago´).Value := ´23.10.2008´
Ex.:
FuncaoVerData(Data:String):String
begin
if Data é uma data válida then
Result := DataFormatada
else
Result := ´NULL´;
end;
Espero ter ajudado.
GOSTEI 0
Joaoshi
23/10/2008
Ficou meio confuso, mas acho que deu para passar a ideia.
GOSTEI 0
Juniorvieira
23/10/2008
No campo onde vai enviar a data coloca algo como:
dataset.fieldbyname(´DATA_EX´).asVariant := null
asvariant vc consegue passar null..
espero te ajudado abraço
dataset.fieldbyname(´DATA_EX´).asVariant := null
asvariant vc consegue passar null..
espero te ajudado abraço
GOSTEI 0
Aldus
23/10/2008
Junior,
Não há asvariant para parambyname, apenas como vc escreveu para fieldbyname
Joao,
Como crio o tipo datatype ftstring?
Não há asvariant para parambyname, apenas como vc escreveu para fieldbyname
Joao,
Como crio o tipo datatype ftstring?
GOSTEI 0
Aldus
23/10/2008
Bom dia amigos,
consegui finalmente com a preciosa ajuda a vcs a solucionar esse problema.
Ficou assim:
Agradeço a atenção.
Mario
consegui finalmente com a preciosa ajuda a vcs a solucionar esse problema.
Ficou assim:
ParamByName(´cadastro´).asdate := Tabela1.Fieldbyname(´_datcadcli´).asdatetime
Agradeço a atenção.
Mario
GOSTEI 0