with ADOQuery do
begin
Close;
SQL.Clear;
SQL.Add('delete from delivery where data = :D');
Params[0].AsDateTime := ADOQuery1.FieldByName('data').AsDateTime;
ExecSQL;
end;
Удаление записи по полю типа Date
deliv_del:=ADOQuery1.FieldByName('data').AsString
...
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('delete from delivery where data='''+deliv_del+'''');
ADOQuery1.ExecSQL;
...
Выдает ошибку: "Несоответствие типов данных в выражении условия отбора"
Помогите решить проблемку.
Цитата:
Originally posted by aleba
Выдает ошибку: "Несоответствие типов данных в выражении условия отбора"
Выдает ошибку: "Несоответствие типов данных в выражении условия отбора"
Код:
И забудь про несоответствие типов.
Params[0].AsDateTime := ADOQuery1.FieldByName('data').AsDateTime;
...вроде под Query работает, под ADOQuery не пашет.
Вместо Params ставил Parameters - на AsDateTime ругается.
Цитата:
Originally posted by aleba
Вместо Params ставил Parameters - на AsDateTime ругается.
Вместо Params ставил Parameters - на AsDateTime ругается.
Тут уже смотри в справке, как правильно писать. Но использование параметров по методологии решения - правильнее всего.
Благодарю за помощь Freeman!
Цитата:
Originally posted by Freeman
Тут уже смотри в справке, как правильно писать. Но использование параметров по методологии решения - правильнее всего.
Тут уже смотри в справке, как правильно писать. Но использование параметров по методологии решения - правильнее всего.
Получилось!
deliv_del:=ADOQuery3.FieldByName('data').AsString;
...
Parameters[0].Value := StrToDate(deliv_del);
Цитата:
Originally posted by aleba
deliv_del:=ADOQuery3.FieldByName('data').AsString;
...
Parameters[0].Value := StrToDate(deliv_del);
deliv_del:=ADOQuery3.FieldByName('data').AsString;
...
Parameters[0].Value := StrToDate(deliv_del);
Так зачем преобразовывать в и из строки? Неужели нельзя просто написать:
Код:
Parameters[0].Value := ADOQuery3.FieldByName('data').AsDateTime;
Цитата:
Originally posted by Freeman
Так зачем преобразовывать в и из строки? Неужели нельзя просто написать:
Так зачем преобразовывать в и из строки? Неужели нельзя просто написать:
Код:
Parameters[0].Value := ADOQuery3.FieldByName('data').AsDateTime;
Я вначале так и делал, но безрезультатно, вот и пришлось немного усложнить код.