Fórum ajuda com uma SQL #233381

20/05/2004

0

Pessoal
seguinte,
tenho uma Sql montada da seguinte forma:

With Query1 do
begin
  Close;
  Sql.Clear;
  Sql.Add(´Insert into Tabela Values´);
  Sql.Add(´:Codigo,:Desc,:Data´);
  Parambyname(´Codigo´).Asinteger := StrToInt(Edit1.Text);
  Parambyname(´Desc´).AsString     := Edit2.Text;
  Parambyname(´Data´).AsDate       := StrToDate(Edit3.Text); //**
  ExecSql;
end;


//** o que acontece é que se o usuário não informar a ´Data´ vai dar erro. Já tentei atribuir Null mas tb deu erro.

alguma sugestão

abraço

Diogo.


Diogoalles

Diogoalles

Responder

Posts

20/05/2004

Diogoalles

Complementado o que escrevi ...

se eu verificar que o Edit3 não foi preenchido eu informo Null ...que tb dá erro...
atualmente coloco 0;
só que aí a data fica com 31/12/1899


então fica assim o correto
...
if Edit3.Text <> ´´ then
  Parambyname(´Data´).AsDate       := StrToDate(Edit3.Text)
else
  Parambyname(´Data´).AsDate       := 0; /// aqui preciso colocar um valor em branco
...



Responder

Gostei + 0

20/05/2004

Macario

Ola programador, boa tarde.

O campo está definido como dentro do Banco?

Por que voce nao ´força´ o usuário a informar uma data? Ou a mesma
não é obrigatoria:


Responder

Gostei + 0

20/05/2004

Diogoalles

O campo dentro do Bd é do Tipo Date... Bd Firebird 1.5
não é obrigatório informar

Agradecido


Responder

Gostei + 0

20/05/2004

Adilsond

with Query1 do
begin
  if Active then
     Close;
  Sql.Clear;
  Sql.Add(´Insert into Tabela´);
  if Trim(Edit3.Text) = ´´ then
     Sql.Add(´Values(´ + Edit1.Text + ´,´ + QuotedStr(Edit2.Text) + ´,null)´)
  else
     begin
       Sql.Add(´Values(´ + Edit1.Text + ´,´ + QuotedStr(Edit2.Text) + ´,:Data)´);
       Parambyname(´Data´).AsDate := StrToDate(Edit3.Text);
     end;
  ExecSql;
end;



Responder

Gostei + 0

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

Aceitar