Data null
Boa Tarde!!!
Estou tentando gravar uma data como NULL, só para não aparecer aquela data padrão de 1899 mas não estou conseguindo.
Estou utilizando o seguinte código:
query1.close;
query1.sql.clear;
query1.sql.add(´insert into tobra_obr values(:codigo, :nome, :tipo, :armador, :dtabert, :dtfech)´);
query1.parambyname(´codigo´).asstring := ed_codigo.text;
query1.parambyname(´nome´).asstring := ed_descricao.text;
query1.ParamByName(´tipo´).asstring := ed_tipo.text;
query1.ParamByName(´armador´).AsString := ed_armador.text;
query1.ParamByName(´dtabert´).asdate := strtodate(ed_dtabert.text);
if ed_dtfech.text <> ´´ then
query1.ParamByName(´dtfech´).asdate := strtodate(ed_dtfech.text)
else
query1.parambyname(´dtfech´).asdate := null;
query1.execsql;
DTFECH pode não conter data nenhuma.
como faço para ficar em nulo?
Att.
heitor
Estou tentando gravar uma data como NULL, só para não aparecer aquela data padrão de 1899 mas não estou conseguindo.
Estou utilizando o seguinte código:
query1.close;
query1.sql.clear;
query1.sql.add(´insert into tobra_obr values(:codigo, :nome, :tipo, :armador, :dtabert, :dtfech)´);
query1.parambyname(´codigo´).asstring := ed_codigo.text;
query1.parambyname(´nome´).asstring := ed_descricao.text;
query1.ParamByName(´tipo´).asstring := ed_tipo.text;
query1.ParamByName(´armador´).AsString := ed_armador.text;
query1.ParamByName(´dtabert´).asdate := strtodate(ed_dtabert.text);
if ed_dtfech.text <> ´´ then
query1.ParamByName(´dtfech´).asdate := strtodate(ed_dtfech.text)
else
query1.parambyname(´dtfech´).asdate := null;
query1.execsql;
DTFECH pode não conter data nenhuma.
como faço para ficar em nulo?
Att.
heitor
Hrcensi
Curtidas 0
Respostas
Anonymous
24/02/2003
Tente como AsVariant.
GOSTEI 0
Hrcensi
24/02/2003
query1.parambyname(´dtfech´).asvariant := null; ?
já tentei e não deu certo.
já tentei e não deu certo.
GOSTEI 0
Anonymous
24/02/2003
Na propriedade da query va em params, selecione o parametro (no caso o dtFech) e seta o DataType para ftDate.
e utiliza assim:
Query.ParamByName(´dtFech´).Value := Null;
e utiliza assim:
Query.ParamByName(´dtFech´).Value := Null;
GOSTEI 0
Anonymous
24/02/2003
Boa Tarde!!!
Estou tentando gravar uma data como NULL, só para não aparecer aquela data padrão de 1899 mas não estou conseguindo.
Estou utilizando o seguinte código:
query1.close;
query1.sql.clear;
query1.sql.add(´insert into tobra_obr values(:codigo, :nome, :tipo, :armador, :dtabert, :dtfech)´);
query1.parambyname(´codigo´).asstring := ed_codigo.text;
query1.parambyname(´nome´).asstring := ed_descricao.text;
query1.ParamByName(´tipo´).asstring := ed_tipo.text;
query1.ParamByName(´armador´).AsString := ed_armador.text;
query1.ParamByName(´dtabert´).asdate := strtodate(ed_dtabert.text);
if ed_dtfech.text <> ´´ then
query1.ParamByName(´dtfech´).asdate := strtodate(ed_dtfech.text)
else
query1.parambyname(´dtfech´).asdate := null;
query1.execsql;
DTFECH pode não conter data nenhuma.
como faço para ficar em nulo?
Att.
heitor
Faça assim:
...
if ed_dtfech.text <> ´´ then
query1.ParamByName(´dtfech´).asdate := strtodate(ed_dtfech.text)
else
query1.parambyname(´dtfech´).clear;
...
GOSTEI 0
Anonymous
24/02/2003
query1.parambyname(´dtfech´).clear;
não deu certo. aparece a mensagem: query1:field ´dtfech´ is of an unknown type
e a outra dica sobre params tb não deu. entro na propriedade params mas está vazio. não tem nenhuma opção, não consigo alterar, inscluir, excluir nada.
não deu certo. aparece a mensagem: query1:field ´dtfech´ is of an unknown type
e a outra dica sobre params tb não deu. entro na propriedade params mas está vazio. não tem nenhuma opção, não consigo alterar, inscluir, excluir nada.
GOSTEI 0
Steve_narancic
24/02/2003
estou com o mesmo dilema, alguem teria alguma dica???
GOSTEI 0
Pestana_
24/02/2003
eu sempre utilizei está forma:
o banco que estou usando aqui é o Firebird 2.
flw.
query.ParamByName(´data´).Value := null;
o banco que estou usando aqui é o Firebird 2.
flw.
GOSTEI 0
Felipeaj
24/02/2003
Eu faço assim:
query.ParamByName(´data´).AsString := ´´;
GOSTEI 0
Techsoft
24/02/2003
vocês já tentaram não passar nada? a princípio não passando nada ele já seria null.
Sempre que preciso deixar um valor null dou um .asvariant = null ou .clear
Sempre que preciso deixar um valor null dou um .asvariant = null ou .clear
GOSTEI 0
Aasn
24/02/2003
Quando eu quero gravar Null num campo tipo TimeStamp ou Date eu simplesmente faço:
Query.SQL.Text := ´update CLIENTES set ULTIMA_VISITA = :data´;
Query.Prepare;
Query.ParamByName(´data´).Clear;
Query.ExecSql;
e sempre funcionou sem problemas...
[]´s
AASN
Query.SQL.Text := ´update CLIENTES set ULTIMA_VISITA = :data´;
Query.Prepare;
Query.ParamByName(´data´).Clear;
Query.ExecSql;
e sempre funcionou sem problemas...
[]´s
AASN
GOSTEI 0
Micheus
24/02/2003
E se com todas estas outras boas sugestões ainda não funcionar, e partindo do princípio de que este campo sempre será NULL (vc disse: [i:dcf0f17519]´DTFECH pode não conter data nenhuma.´[/i:dcf0f17519]), então implemente a solução mais simples: não parametrize este campo.
Se ele deve receber NULL, significa que este campo pode ser nulo.
Se pode ser nulo, e vc está fazendo um INSERT, então, ocultá-lo do comando o deixará com este valor - nullo.
Então, vc poderia citar o nome das colunas em seu SQL:
Boa sorte
insert into tobra_obr values(:codigo, :nome, :tipo, :armador, :dtabert, NULL)
Se ele deve receber NULL, significa que este campo pode ser nulo.
Se pode ser nulo, e vc está fazendo um INSERT, então, ocultá-lo do comando o deixará com este valor - nullo.
Então, vc poderia citar o nome das colunas em seu SQL:
insert into tobra_obr (codigo, nome, tipo, armador, dtabert)
values(:codigo, :nome, :tipo, :armador, :dtabert)
Boa sorte
GOSTEI 0