![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запрос к таблице с отбором по дате...... [D6, Access 2000]
Sanches © (2006-06-24 14:17:00)Делаю запрос к таблице oplata:
ADOQuery12.SQL.Add('select * from oplata where data>02.03.2006');
где поле data - Дата/время в таблице Access 2000
Delphi выдает ошибку: "число содержит синтаксическую ошибку data>02.03.2006"
Вопрос: какой синтаксис при отборе по дате (если сделать поле data -текстовым, то отбор идет только по дням -месяц и год игнорирует)
Desdechado (2006-06-24 19:02:00) [1]> отсутствует Params
Заметь, я писал Query, а не ADOQuery. Суть та же, названия другие.
sniknik (2006-06-24 19:00:00) [2]> мож кому пригодится
ну судя по тому, что тебе не пригодились сотни аналогичных [13]-му постов здесь от более ранних участников... (закончи мысль сам)
и еще, не называй это проблемой пожалуйста... если этопроблема, то написать чтото сложнее "hello word" вообще невозможно, в принципе, а это не так.
Sanches (2006-06-24 17:40:00) [3]да нет, воплей не будет, спасибо что заставили думать, но на этот форум я обращаюсь для быстрого решения проблем!!!!!
А вот решение проблемы (мож кому пригодится):
ADOQuery12.Close;
ADOQuery12.SQL.Clear;
ADOQuery12.SQL.Add('select * from oplata where (data> :qqq) and (data< :qqq1) order by data');
ADOQuery12.Parameters[0].Value:=DateTimePicker1.DateTime;
ADOQuery12.Parameters[1].Value:=DateTimePicker2.DateTime;
ADOQuery12.Open;
sniknik (2006-06-24 15:40:00) [4]Курдль © (24.06.06 15:36) [11]
думаеш поможет?
счаз будут вопли о нерабочести кода... (отсутствует Params).
Курдль (2006-06-24 15:36:00) [5]
> Desdechado © (24.06.06 15:32) [10]
Не выдержало доброе сердце издевательства над юным мозхом советами почитать книжки! :)
Desdechado (2006-06-24 15:32:00) [6]Пережую [1] для непонятливых:
Query.SQL.Text:='SELECT * FROM tbl WHERE fld < :param1';
Query.Params[0].Value:=Date;
Query.Open;
Sanches (2006-06-24 15:29:00) [7]Ваш ответ - упадочный. наишите какие параметры :)
Курдль (2006-06-24 15:26:00) [8]
> Sanches (24.06.06 15:23) [7]
> что такое параметры? Примерчик
Описания и примерчики - в книжечках. По Делфи их немеряно! Просто немеряно-немеряно! (По сравнению с любыми другими продуктами).
Sanches (2006-06-24 15:23:00) [9]
> Работайте через параметры
что такое параметры? Примерчик
Virgo_Style (2006-06-24 15:16:00) [10]Sanches (24.06.06 15:05) [4]
[1], строка 1,2
Курдль (2006-06-24 15:16:00) [11]Ваш подход - упадочный. Работайте через параметры.
Sanches (2006-06-24 15:05:00) [12]ADOQuery12.SQL.Add('select * from oplata where data = '+FormatDateTime('dd.mm.yyyy',DateTimePicker1.DateTime)+'');
Таже самая ошибка! Пару сток черкните!!!
Курдль (2006-06-24 14:39:00) [13]
> У меня дата берется из DateTimePicker1.DateTime
Значит сам Бог велел использовать параметрические запросы.
ADOQuery + F1
Sanches (2006-06-24 14:35:00) [14]I>
> если эта дата незыблема
У меня дата берется из DateTimePicker1.DateTime и что-то типа:
ADOQuery12.SQL.Add('select * from oplata where data >'+ DateToStr(DateTimePicker1.DateTime)+')';
Курдль (2006-06-24 14:28:00) [15]
ADOQuery12.SQL.Add('select * from oplata where data>:data);
Где :data - параметр.
Это единственно правильный подход к решению подобных проблем. Иначе, даже если Вы правильно вычислите формат даты на данный момент, кто-то может просто его изменить в настройках БД.
Еще один вариант, если эта дата незыблема, использовать явное преобразованиеTO_DATE('02.03.2006', 'DD.MM.YYYY')но не уверен, что у Access-а именно такой синтаксис.