Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 firedac добавить значение DateTime в поле  [new]
varbambia
Member

Откуда:
Сообщений: 11
procedure TForm1.Button1Click(Sender: TObject);
      var
  myDate : TDateTime;
begin
myDate:=now;
TestConnection.ExecSQL('insert into table1 ("время","Событие","Команда") values (' + QuotedStr(myDate) + ',' + QuotedStr(Edit2.Text) + ',' + QuotedStr(Edit3.Text) + ')');
FDTabletable1.RefireSQL;
end;


ошибка узатель тут указывает QuotedStr(myDate)

Модератор: Тема перенесена из форума "Firebird, InterBase".


Сообщение было отредактировано: 16 ноя 21, 15:19
16 ноя 21, 15:15    [22396610]     Ответить | Цитировать Сообщить модератору
 Re: firedac добавить значение DateTime в поле  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 27313
Текст ошибки что-то вроде "Incompatible types: 'string' and 'TDateTime'".
Гугло-перевод: Несовместимые типы: 'string' и 'TDateTime'

Выглядит понятно.
16 ноя 21, 15:27    [22396615]     Ответить | Цитировать Сообщить модератору
 Re: firedac добавить значение DateTime в поле  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54790

Но бить надо начинать уже за QuotedString.

Аффтар, используй параметры и будет тебе счастье.

Posted via ActualForum NNTP Server 1.5

16 ноя 21, 15:50    [22396626]     Ответить | Цитировать Сообщить модератору
 Re: firedac добавить значение DateTime в поле  [new]
Gluck99
Member

Откуда: Оттуда
Сообщений: 1191
varbambia,
Тихий ужас. Хотя обучиться работе с параметрами совсем несложно.
MyOrder.SQL.Text := 'INSERT INTO table1 (EventDate, Event, Command) VALUES (:EventDate, :Event, :Command)';
MyQuery.ParamByName('EventDate').Value := EventDate;
MyQuery.ParamByName('Event').Value     := Event;
MyQuery.ParamByName('Command').Value   := Command;

А уж если совсем невмоготу, то можно освоить Format, но надо внимательно смотреть на типы.
MyQuery.SQL.Text := 'INSERT INTO table1 (EventDate, Event, Command) VALUES (' + Format('%s, %s, %s)', [EventDate, Event, Command]);
16 ноя 21, 16:43    [22396641]     Ответить | Цитировать Сообщить модератору
 Re: firedac добавить значение DateTime в поле  [new]
varbambia
Member

Откуда:
Сообщений: 11
Gluck99,

вот так сделал
пишет EventDate ненаиден

procedure TForm1.Button1Click(Sender: TObject);
      var
  myDate : TDateTime;

begin

myDate:=now; //узнать текужую дату время


FDTabletable1.SQL.Text := 'INSERT INTO table1 ("время","Событие","Команда") VALUES (:EventDate, :Event, :Command)';
FDTabletable1.ParamByName('EventDate').AsDateTime:= myDate;
FDTabletable1.ParamByName('Event').AsString     := Edit2.Text;
FDTabletable1.ParamByName('Command').AsString   := Edit3.Text;
FDTabletable1.ExecSQL;


FDTabletable1.RefireSQL;  //обновить таблицу

end;


а вот так работает
TestConnection.ExecSQL('insert into table1 ("время","Событие","Команда") values (' + QuotedStr(FormatdateTime('dd/mm/yyyy hh:nn:ss',myDate)) + ',' + QuotedStr(Edit2.Text) + ',' + QuotedStr(Edit3.Text) + ')'); //добавить


Сообщение было отредактировано: 16 ноя 21, 22:52
16 ноя 21, 22:47    [22396726]     Ответить | Цитировать Сообщить модератору
 Re: firedac добавить значение DateTime в поле  [new]
varbambia
Member

Откуда:
Сообщений: 11
varbambia,

точнее так
FDTabletable1.SQL.Text := 'INSERT INTO table1 ("время","Событие","Команда") VALUES (:EventDate, :Event, :Command)';
FDTabletable1.ParamByName('EventDate').AsDateTime:= myDate;
FDTabletable1.ParamByName('Event').AsString     := Edit2.Text;
FDTabletable1.ParamByName('Command').AsString   := Edit3.Text;
FDTabletable1.ExecSQL;


работает. то таблица закрывается, надо прогу перезапускать чтоб увидеть изменения
16 ноя 21, 22:59    [22396730]     Ответить | Цитировать Сообщить модератору
 Re: firedac добавить значение DateTime в поле  [new]
varbambia
Member

Откуда:
Сообщений: 11
varbambia,

проблема решина
17 ноя 21, 08:38    [22396809]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить