
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.96] |
![]() |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Уважаемые господа!
Подскажите где у меня ошибка? База в файле Access через ADO. Создаю запрос с использованием DateEdit: ... SQL.Add('(Date='''+DateEdit.EditText+''')'); ... компилируется нормально, но при обращении выдает ошибку "Несоответствие типов данных в выражении условия отбора". |
![]() |
Сообщ.
#2
,
|
|
Используй параметры:
![]() ![]() ... SQL.Add('(Date=:P_DATE)'); SQL.ParamByName('P_DATE').Value = DateEdit.Date; ... |
Сообщ.
#3
,
|
|
|
Спасибо за такой быстрый ответ, но к сожалению не компилируется.
Пишет, что не понимает "Parameters". |
![]() |
Сообщ.
#4
,
|
|
Цитата nikvicfc, 8.10.04, 15:48 SQL.Add('(Date='''+DateEdit.EditText+''')'); ![]() ![]() '(Date=#'+DateEdit.EditText+'#)' |
Сообщ.
#5
,
|
|
|
Уважаемый Master!
При таком коде появляется ошибка: 'Дата содержит синтаксическую ошибку в выражении запроса '(Date=##)''. |
Сообщ.
#6
,
|
|
|
Цитата nikvicfc, 8.10.04, 15:48 тут кажется ошибки нет, но дату нужно вводить соответствующим форматом. точно не помню но кажется YYYY-MM-DD.SQL.Add('(Date='''+DateEdit.EditText+''')'); или как писал Chow через параметр. |
Сообщ.
#7
,
|
|
|
Если выдается именно (дословно) такая ошибка:
Цитата 'Дата содержит синтаксическую ошибку в выражении запроса '(Date=##)'' то это значит, что DateEdit.EditText имеет пустое значение. Иначе было бы: 'Дата содержит синтаксическую ошибку в выражении запроса '(Date=#чего-то там#)'' |
![]() |
Сообщ.
#8
,
|
|
Цитата nikvicfc, 11.10.04, 09:04 'Дата содержит синтаксическую ошибку в выражении запроса '(Date=##)''. В Accesse дату принято заключать в #. Слово 'Date' - являеться зарезервированным во многих язаках, и если оно являеться именем поля то обычно надо брать в кавычки. |
Сообщ.
#9
,
|
|
|
Уважаемые господа!
Отвечаю по-порядку. И в таблице и в запросе формат dd.mm.yyyy, в таблице Access - краткий формат даты. Первоначально сообщение об ошибке так и было написоно:'Дата содержит синтаксическую ошибку в выражении запроса '(Date=#11.10.2004#)''. Название поля(Date) на самом деле иное. |
![]() |
Сообщ.
#10
,
|
|
Цитата nikvicfc, 11.10.04, 13:01 '(Date=#11.10.2004#)''. А так (Date=#11/10/2004#) ![]() ![]() WHERE (((Заказы.ДатаРазмещения)=#7/26/1996#)); |
Сообщ.
#11
,
|
|
|
слово DATE зарезервировано стандартом ANSI/iso sql92.
Оно не допустимо к исползованию как имя поля. |
Сообщ.
#12
,
|
|
|
Уважаемый Master!
Попробывал заменить везде, в том числе в системе разделители даты. Кроме изменения разделителей ничего не изменилось. Ошибка та же:'Дата содержит синтаксическую ошибку в выражении запроса '(S_Date=#11/10/2004#)''. Уважаемый Pigas, как я уже писал название поля на самом деле не Date, так написал на форуме для простоты. |
Сообщ.
#13
,
|
|
|
Я работаю на Delphi 7 с использованием DBExpress Компонет.
И у меня тоже возникла ошибка при работе с датой, точнее передачей ее запросом. Цитата SQLQuery1.Close; SQLQuery1.SQL.Text:='insert into history (now_date) values (:date)'; SQLQuery1.ParamByName('date').asDateTime:=date; SQLQuery1.ExecSQL(); Он ругается : "dbExpress Error: Invalid Field Type" В таблице поле типа: datetime Также пытался Задавать параметр asDate. Все равно нивкакую. |
![]() |
Сообщ.
#14
,
|
|
Какой текст запроса полностью?
(И все-же стоит использовать параметры - не надо ломать голову о формате представления того или иного типа. Тем более, что на другом компьютере могут быть другие настройки и ваша программа не будет работать) Добавлено Цитата Mamont, 12.10.04, 09:07 'insert into (now_date) values (:date)' Где здесь указано имя таблицы? |
Сообщ.
#15
,
|
|
|
Забыл сказать, что тоже компилирует он нормально, ошибка возникает воремя обращения.
Добавлено Sorry Цитата SQLQuery1.SQL.Text:='insert into history (now_date) values (:date)'; Это я когда пост писал, забыл написать. В проге название таблицы присутствует. |