![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с запросом [D6, Access ]
dim- © (2004-01-17 01:47:00)
В Access есть таблица с полем dat (Дата/время) пишу запрос:
ADODataSet1.CommandText:="select * from spisok Where (dat>="+#39+
DateTimeToStr(StrToDate(ndat))+#39+") and (Dat<="+#39+DateTimeToStr(StrToDate(kdat))+#39+")";
ругается "Несоответствие типов данных в выражении условия отбора"
что делаю не так?
sniknik (2004-01-20 00:12:00) [1]
а ты и не спрашивал. параметром.
dim- (2004-01-19 22:09:00) [2]
так привел бы пример как не текстом составить SQL запрос
sniknik (2004-01-18 20:15:00) [3]
думаеш только этим различия и ограничиваются? (наивный)
> .... язык запросов который (вроде бы) стандартезирован ...
вот именно, вроде бы, сходятся они примерно также как приведенные белаз с запорожцем.
в продолжении темы, для даты, сделай запрос
SELECT #01/13/2003#, #13/01/2003#
и как тебе, не впечатлило? лично я бы после этого(если б до сих пор делал так) бросил бы даты текстом вставлять.
dim- (2004-01-18 18:22:00) [4]
заработало, вместо "." в дате поставил "/" (#01/12/2003#), а по поводу сравнения двух движков БД, причем разработки одной фирмы, где используется язык запросов который (вроде бы) стандартезирован и если в одном дата заключается в кавычки, а в другом в "#" то вопрос о сравнении конечно ставить некоректно:)))
sniknik (2004-01-17 23:17:00) [5]
правильно, строка в запросе(какую движок к типу приводит) зависит от локальных настроек, поэтому все что работает на одном компе на другом может глючить.
а сравнивать Access с MSSQL вообще некоректно (не приходит же тебе в голову колеса на запорожце с белаза заменить. а чего тоже ведь машина).
dim- (2004-01-17 22:02:00) [6]
для Tt-не получается, говорит Ошибка "Дата содержит синтаксическую ошибку в выражении запроса"
для Flagman- на MSSQL тоже работает, а здесь не хочет
Tt (2004-01-17 12:06:00) [7]
ADODataSet1.CommandText:="select * from spisok Where (dat>= #"+
DateTimeToStr(StrToDate(ndat))+" #) and (Dat<= #"+DateTimeToStr(StrToDate(kdat))+" #)"; ?
Flagman (2004-01-17 07:48:00) [8]
("... WHERE ACCEPT_DATE >= "+""""+DateToStr(F_SPD.Date)+""""+" AND ACCEPT_DATE <= "+""""+DateToStr(F_PPD.Date)+"""")
Кусок из готовой проги, правда под IB. Все работает.
F_SPD и F_PPD - TDateEdit.
sniknik (2004-01-17 03:27:00) [9]
дату со строкой сравниваеш.