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