15/12/2005

No value for parameter ´h´. Mas eu botei!!!

Amigos,
o q há de errado com esse código. o banco de dados eh o firebird

t := true;
  if  edtHora.Text = ´  :  ´ then
    t := false;
  try
    if t then
      StrToTime(edtHora.Text);
  except
    messagebox(handle, ´você precisa digitar uma hora válida.´, ´´, mb_iconerror+mb_ok);
    edtHora.SetFocus;
    exit;
  end;
  qryAtualiza.SQL.Clear;
  qryAtualiza.SQL.Add(´update compromissos set´);
  qryAtualiza.SQL.Add(´hora=:h,´);
  qryAtualiza.SQL.Add(´descricao=´+QuotedStr(MeDesc.Text));
  qryAtualiza.SQL.Add(´where codcomp=´+cod);
  qryAtualiza.ParamByName(´h´).Value := null;
  if t then
    qryAtualiza.ParamByName(´h´).AsTime := StrToTime(edtHora.Text);
  messagebox(handle, pchar(qryAtualiza.SQL.Text), ´´, mb_iconinformation+mb_ok);
  qryAtualiza.ExecSQL();
  frmMain.cdsLista.Close;
  frmMain.cdsLista.Open;
  close;



Orlando Frade

Respostas

15/12/2005

Edilcimar

talves pq o bd tem o campo H como time e vc está mandando uma hora com o formato hh:mm quando ele está esperando hh:mm:ss


Responder Citar

15/12/2005

Edilcimar

era talvez, foi erro de digitação


Responder Citar

15/12/2005

Orlando Frade

o erro acontece quando o boto o parametro como null


Responder Citar

15/12/2005

Edilcimar

mas o time não pode ser null, mova a query para dentro do try, antes do except


Responder Citar