Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не работает простой запрос, говорит "несоответствие типов" [D7, XP]


Страницы:   1 2

Кирей ©   (2007-11-19 09:34:00) 

запрос вида:
SELECT DISTINCT KOD_CONT, DATA
FROM "12_2007\CONT_ZD.DBF"
WHERE
(DATA > '01/11/2007')
ORDER BY KOD_CONT, DATA
похоже (DATA > '01/11/2007') - строка с ошибкой, как написать правильно? Использую ADO.


Ditrix   (2007-11-20 09:56:00) [1]

спасибо


Anatoly Podgoretsky   (2007-11-20 09:34:00) [2]

> Ditrix  (20.11.2007 09:27:21)  [21]

Как раз наоборот, это причина получения не рабочего кода.
Используй параметры.


Ditrix   (2007-11-20 09:27:00) [3]

Anatoly Podgoretsky ©   (19.11.07 15:29) [19]
>>...русским программистам наплевать на форматы.
>>Формат определяется локализацией системы. Параметры избавлены от >>этой проблемы.
не дает покоя эта тема. :-\
а вариант DateToStr(Date) избавлен от проблеммы локализации?

т.е.
Query.SQL.Text:= Format('select * from table where date > "%s"',[DateToStr(Date)])
...у меня полно подобного кода...


Anatoly Podgoretsky   (2007-11-19 15:31:00) [4]

http://podgoretsky.com/DM/BadWillPoetry.html#BW-07


Anatoly Podgoretsky   (2007-11-19 15:29:00) [5]

Смотри про локализацию и форматы, что русским программистам наплевать на форматы.
Формат определяется локализацией системы. Параметры избавлены от этой проблемы.


ditrix   (2007-11-19 15:23:00) [6]

> Anatoly Podgoretsky ©   (19.11.07 14:54) [17]
а можно точнее ткнуть носом?
я неправ, видимо, в подходе в целом
а вот в чем  именно?


Anatoly Podgoretsky   (2007-11-19 14:54:00) [7]

> Ditrix  (19.11.2007 14:39:16)  [16]

Неправильно полагаешь.
http://podgoretsky.com/DM/delphimaster.html


Ditrix   (2007-11-19 14:39:00) [8]

[0]
BDE я полагаю?

(DATA > "01.11.2007")
такой формат даты должен пройти без проблем


palva   (2007-11-19 13:47:00) [9]

У меня работает, если дату заключить в скобки # #
Вот я кладу на форму компоненты DBGrid DataSource ADOQuery, сцепляю их,
Устанавливаю в ADOQuery ConnectionString =
Driver={Microsoft dBASE Driver (*.dbf)};Dbq=C:\Program Files\Common Files\Borland Shared\Data;
SQL = select FIRST_NAME from CLIENTS.DBF where DATE_OPEN=#10/23/1990#
После чего перевожу Active в True и у меня работает.


Johnmen   (2007-11-19 11:34:00) [10]


> но я думал эта конференция для начинающих

Ты ещё заплачь.


Anatoly Podgoretsky   (2007-11-19 11:08:00) [11]


> (DATA >cast('01/11/2007 00:00:00.000' as datetime))

Шило на мыло поменял, это делается автоматически без cast


Anatoly Podgoretsky   (2007-11-19 11:08:00) [12]


> FROM "12_2007\CONT_ZD.DBF"

А он ССЗБ, за это время мог бы и намекнуть детали.


Reindeer Moss Eater   (2007-11-19 11:02:00) [13]

т. к. ему приходится заново подготавливать параметрические запросы, уже «выбитые» из кэша.

FROM "12_2007\CONT_ZD. DBF"


Desdechado   (2007-11-19 11:01:00) [14]

"Упростить" и "без параметров" неосуществимо в общем случае.
Годится только для SELECT * FROM tab
2.5.Использование параметрических запросов
Использование параметров в запросах является правилом хорошего тона в программировании, поскольку имеет множество положительных аспектов:
Улучшается читаемость и облегчается сопровождение кода программ.
При циклических выполнениях запроса с разными значениями параметров есть возможность «подготовить» запрос на сервере один раз, после чего он выполняется быстрее без необходимости «подготовки» на каждой итерации.
Исчезают ошибки, связанные с наличием апострофов, кавычек и неожиданных форматов даты внутри заданных пользователем текстовых строк в конструируемых «на лету» запросах.
Запросы, «подготовленные» сервером, хранятся некоторое время в кэше. Параметрический запрос хорош в этом случае тем, что он подходит для любых значений параметров такого же запроса, тогда как непараметрический – только для точно такого же, включая заданные в его теле (а не в параметрах) значения. Поэтому при совпадении «подготовка» не проводится, что для параметрического запроса это случается гораздо чаще, чем для непараметрического.
Непараметрические запросы тоже попадают в кэш, «выбивая» оттуда давно неиспользованные запросы (любого вида). Однако при большом потоке разнообразных запросов выбиваются и параметрические, которые имели шанс быть использованными далее, и заменяются непараметрическими, которые таких шансов не имеют. Это отрицательно сказывается на производительности сервера, т. к. ему приходится заново подготавливать параметрические запросы, уже «выбитые» из кэша.


Кирей   (2007-11-19 11:00:00) [15]

ладно, спасибо за помощь, за бубны, но я думал эта конференция для начинающих


sniknik   (2007-11-19 10:50:00) [16]

> По большому счету одно и то же
да ну?

> но хотелось бы все упростить, сочинил запрос и выполнил
без бубна не обойтись... см. "рекламу" выше.
либо сложный путь, учить, и применять возможности каждого движка отдельно и только к месту.


sniknik   (2007-11-19 10:46:00) [17]

> ошибка в имени функции, но все по науке:
т.е. это тебе наука говорит используй функции из одного SQL движка в другом? тогда нафиг такую науку, переходи на шаманство...
на правах рекламы, продаю бубны, оптом и в розницу. дорого. ;о))


Кирей   (2007-11-19 10:44:00) [18]


> Используй параметры



> Я в прнципе дату заношу во временную таблицу, а потом уже
> отттудаd.DATA > d1.data, но хотелось бы сделать динамическое
> формирование запроса. Да и вообще почему не работает?


По большому счету одно и то же, запрос нормально работает, но хотелось бы все упростить, сочинил запрос и выполнил, без параметров и лишних таблиц.


Sergey13   (2007-11-19 10:39:00) [19]

> [4] Кирей   (19.11.07 10:35)
Не судьба попробовать
[1] Anatoly Podgoretsky ©   (19.11.07 09:37)
?


Кирей   (2007-11-19 10:35:00) [20]

привел в соответствие, не работает, - ошибка в имени функции, но все по науке:
(DATA >cast('01/11/2007 00:00:00.000' as datetime))


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо