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

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

Дата в запросах для Paradoxa [D5, Paradox]


Черный анархист ©   (2004-06-28 14:18:00) 

Буду благодарен за помощь в таком вопросе:
Мне нужно динамически сформировать запрос (SQL) для выборки по нескольким полям. Одно из полей имеет тип Date. Раньше я работал с Ораклом и потому сначала попробовал использовать

<имя поля> = TO_DATE ('<строковая переменная>','DD.MM.YYYY');

но в ответ услышал Capability not supported.
Использовать Params я не могу - запрос может быть любым от SELECT FROM до INSERT INTO (это определяеться програмой в рантайме и запрос переписывается полностью). Как мне решить данную задачку?


Черный анархист   (2004-06-28 15:07:00) [1]

УРААААААААААААА!!!!!!!!!!
Заработало. Всем большое спасибо. В особенности Sandman25.


Черный анархист   (2004-06-28 14:53:00) [2]

to Sandman25
Ладно, спасибо. Не буду лениться. Буду читать хелп


Sandman25   (2004-06-28 14:52:00) [3]

>Если Вам не тяжело, расскажите про cast

LocalSql.hlp :)


Черный анархист   (2004-06-28 14:51:00) [4]


> select * from mytable where mydate=cast('28.06.2004' as
> date)
> пробовали?

нет, щас попробую. Если Вам не тяжело, расскажите про cast, а то мне его не доводилось ни разу использовать. Самое главное для каких типов данных он работает и кушает ли другие операции сравнения (!=, <, >).


Sandman25   (2004-06-28 14:48:00) [5]

точнее 28/06/2004


Sandman25   (2004-06-28 14:47:00) [6]

select * from mytable where mydate=cast('28.06.2004' as date)
пробовали?


Черный анархист   (2004-06-28 14:45:00) [7]


> Есть один корявый способ без Params, правда.
> Session.GetConfigParams и потом передавать строку в полученном
> формате. В BDE описывается занчения всех переменных


Кстати, звучит не так уже и коряво. Ща попробую, но я пытался передавать установленый у меня формат #dd/mm/yyyy# напрямую и... бесполезно. (Invalid token)


Черный анархист   (2004-06-28 14:45:00) [8]


> Кстати, а как Вы боретесь с возможным присутствием кавычек
> в строковых данных?

С кавычками борюсь - #39


Sandman25   (2004-06-28 14:44:00) [9]

[6] Черный анархист ©   (28.06.04 14:42)

Кстати, а как Вы боретесь с возможным присутствием кавычек в строковых данных? ИМХО, лучше все же перейти на использование параметров. Наличие Format только поможет - заменяете своей функцией и заполняете Params содержимым второго параметра. По Variant можно легко определить требуемый TParam.DataType


Черный анархист   (2004-06-28 14:42:00) [10]

to Sandman25
Конечно в принципе можно сделать так, что бы менять Params перед каждым изменением запроса, но очень часто в качестве параметра могут оказываться конструкции Format, конкатированные строки и прочая гадость. Вообщем, если над этим делом посидеть, то можно менять парамзы, но пропадает рациональность решения задачи. Моя интуиция подсказывает наличие более простого выхода.


Sandman25   (2004-06-28 14:39:00) [11]

Есть один корявый способ без Params, правда.
Session.GetConfigParams и потом передавать строку в полученном формате. В BDE описывается занчения всех переменных


Johnmen   (2004-06-28 14:37:00) [12]

А дело в формате представления даты. Ты знаешь, какой он ? И я тоже. Поэтому см. Sandman25 ©   (28.06.04 14:27) [1]


Черный анархист   (2004-06-28 14:35:00) [13]

to Курдль
Ну этобыло бы совсем просто - не работает


Sandman25   (2004-06-28 14:27:00) [14]

Params можно заполнять/использовать и в run-time. Попобробнее о задаче можно?


Курдль   (2004-06-28 14:27:00) [15]

<имя поля> = 'DD.MM.YYYY'


Наверх

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