Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.25;
Скачать: CL | DM;

Вниз

Дата в запросах для Paradoxa   Найти похожие ветки 

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

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

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

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


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

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


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

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


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

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


 
Johnmen ©   (2004-06-28 14:37) [4]

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


 
Sandman25 ©   (2004-06-28 14:39) [5]

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


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

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


 
Sandman25 ©   (2004-06-28 14:44) [7]

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

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


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


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


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


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


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

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


 
Sandman25 ©   (2004-06-28 14:47) [10]

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


 
Sandman25 ©   (2004-06-28 14:48) [11]

точнее 28/06/2004


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


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

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


 
Sandman25 ©   (2004-06-28 14:52) [13]

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

LocalSql.hlp :)


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

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


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

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



Страницы: 1 вся ветка

Текущий архив: 2004.07.25;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.051 c
3-1088827535
Gamar
2004-07-03 08:05
2004.07.25
Как пролистать DataSource.DataSet в качестве поля компонента?


14-1089295635
gn
2004-07-08 18:07
2004.07.25
патент на тело:ни шагу без некрасофта


1-1089294780
cvg
2004-07-08 17:53
2004.07.25
Проблема с CommaText


6-1085402630
Barmutik
2004-05-24 16:43
2004.07.25
IntraWeb и Session expired


3-1088672000
GanibalLector
2004-07-01 12:53
2004.07.25
два TIBTransaction !