Subject Re: Time Field: Trouble updateing in FB 2.1 from Delphi 2007
Author homerjones1941
--- In firebird-support@yahoogroups.com, Helen Borrie <helebor@...> wrote:
>
> At 05:19 PM 16/01/2012, homerjones1941 wrote:
> >I've searched past posts, but haven't been able to find solution.
> >
> >I have a Time FieldType in a FB 2.1 DB and have been unable to insert a time value into that field. I've tried the following (Note: I've resulted to hard coding the values to eliminate possible formatting issues caused by me):
> >
> > FieldByName('AlarmTime').Value := '4:30:00 PM';
> > FieldByName('AlarmTime').Value := '11:30:00 PM';
>
> Not a valid TIME literal. The format uses the 24-hr clock and takes the form
> hh:nn:ss.nnnn or hh:nn:ss.nnn
>
> If you don't care about sub-seconds, use zeroes there.
>
> >Error message is '0.0 is not a valid Timestamp.'
>
> If you are absolutely sure that column is TIME and not TIMESTAMP then I would guess you are using the (broken) old BDE. The last-ever was v.5.2 and the Dialect 3 date/time support still didn't work properly.
>
> >If I omit the "PM" the error message is similar.
> > FieldByName('AlarmTime').Value := '4:30:00';
>
> It's a gamble assigning any date or time values to the Value property of a VCL parameter but in this case it's obviously not working because your interface (whatever it is) doesn't recognise that as time literal. If you want to persevere, I suggest you try one of the following:
> FieldByName('AlarmTime').Value := QuotedStr ('04:30:00');
> FieldByName('AlarmTime').Value := ''04:30:00''; // doubled apostrophes NOT double quotes
>
> >Error Message is '693594. -1073258496 is not a valid Timestamp.'
>
> And that's not a valid Firebird message, either.
>
> >I've tried using TDateTime values with similar results.
>
> Using AsDateTime???
>
> ./heLen
>

Thanks for the help, Helen. I rewrote the procedure to create "Insert Into..." SQL, and the problem is gone. I suppose I should let Firebird do what it does best (better than I do, apparently).