Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Удаление записи по полю типа Date

11K
20 июля 2005 года
aleba
9 / / 20.07.2005
Пытаюсь удалить запись в базе (база Access) по полю типа Date:

deliv_del:=ADOQuery1.FieldByName('data').AsString
...
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('delete from delivery where data='''+deliv_del+'''');
ADOQuery1.ExecSQL;
...
Выдает ошибку: "Несоответствие типов данных в выражении условия отбора"

Помогите решить проблемку.
10
20 июля 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by aleba
Выдает ошибку: "Несоответствие типов данных в выражении условия отбора"


 
Код:
with ADOQuery do
begin
  Close;
  SQL.Clear;
  SQL.Add('delete from delivery where data = :D');
  Params[0].AsDateTime := ADOQuery1.FieldByName('data').AsDateTime;
  ExecSQL;
end;

И забудь про несоответствие типов.
11K
20 июля 2005 года
aleba
9 / / 20.07.2005
Эта строчка...

Params[0].AsDateTime := ADOQuery1.FieldByName('data').AsDateTime;

...вроде под Query работает, под ADOQuery не пашет.
Вместо Params ставил Parameters - на AsDateTime ругается.
10
20 июля 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by aleba
Вместо Params ставил Parameters - на AsDateTime ругается.


Тут уже смотри в справке, как правильно писать. Но использование параметров по методологии решения - правильнее всего.

11K
21 июля 2005 года
aleba
9 / / 20.07.2005
Благодарю за помощь Freeman!
11K
21 июля 2005 года
aleba
9 / / 20.07.2005
Цитата:
Originally posted by Freeman
Тут уже смотри в справке, как правильно писать. Но использование параметров по методологии решения - правильнее всего.



Получилось!

deliv_del:=ADOQuery3.FieldByName('data').AsString;
...
Parameters[0].Value := StrToDate(deliv_del);

10
21 июля 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by aleba

deliv_del:=ADOQuery3.FieldByName('data').AsString;
...
Parameters[0].Value := StrToDate(deliv_del);


Так зачем преобразовывать в и из строки? Неужели нельзя просто написать:

 
Код:
Parameters[0].Value := ADOQuery3.FieldByName('data').AsDateTime;
11K
21 июля 2005 года
aleba
9 / / 20.07.2005
Цитата:
Originally posted by Freeman
Так зачем преобразовывать в и из строки? Неужели нельзя просто написать:
 
Код:
Parameters[0].Value := ADOQuery3.FieldByName('data').AsDateTime;



Я вначале так и делал, но безрезультатно, вот и пришлось немного усложнить код.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог