GARANTIR DESCONTO

Fórum Data null #140288

24/02/2003

0

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


Hrcensi

Hrcensi

Responder

Posts

24/02/2003

Anonymous

Tente como AsVariant.


Responder

Gostei + 0

24/02/2003

Hrcensi

query1.parambyname(´dtfech´).asvariant := null; ?

já tentei e não deu certo.


Responder

Gostei + 0

24/02/2003

Anonymous

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;


Responder

Gostei + 0

24/02/2003

Anonymous

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;
...


Responder

Gostei + 0

24/02/2003

Anonymous

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.


Responder

Gostei + 0

20/12/2007

Steve_narancic

estou com o mesmo dilema, alguem teria alguma dica???


Responder

Gostei + 0

21/12/2007

Pestana_

eu sempre utilizei está forma:

query.ParamByName(´data´).Value := null;


o banco que estou usando aqui é o Firebird 2.


flw.


Responder

Gostei + 0

21/12/2007

Felipeaj

Eu faço assim:

query.ParamByName(´data´).AsString := ´´;



Responder

Gostei + 0

21/12/2007

Techsoft

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


Responder

Gostei + 0

22/12/2007

Aasn

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


Responder

Gostei + 0

22/12/2007

Micheus

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.
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


Responder

Gostei + 0

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

Aceitar