|
Условие на дату для DBF
|
|||
---|---|---|---|
#18+
Добрый день! С помощью функции SyntaxFromSQL создаю код для datastore, в который качаю данные из ДБФ. Не могу наложить в запросе условие на дату. Вот такой код: Код: sql 1. 2. 3. 4.
выдает ошибку. Если к строке не подклеивать условие на дату, то все работает. Подскажите как все-таки наложить это условие? Может преобразовать дату к строке "ггггммдд" и дальше сравнивать строки, но какой функцией делать преобразование? PB 11.1, драйвер Driver do Microsoft dBase ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 13:25 |
|
Условие на дату для DBF
|
|||
---|---|---|---|
#18+
DimmaN, Не знаю причем тут PB, но ошибка в синтаксисе. Проще всего добиться работоспособности SQL-выражения в каком-нибудь commandere и воспроизвести его уже в PB. Есть подозрения, что - поле dataaf.[Date] -так не называется - драйвер скорее всего переварит строковое значение даты '01.01.2000', а не {} и тут нужен формат совпадающий с вашей локалью. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 14:51 |
|
Условие на дату для DBF
|
|||
---|---|---|---|
#18+
IkirDimmaN, Не знаю причем тут PB, но ошибка в синтаксисе. Проще всего добиться работоспособности SQL-выражения в каком-нибудь commandere и воспроизвести его уже в PB. Есть подозрения, что - поле dataaf.[Date] -так не называется именно так оно и называется. если включить его в выборку, и не накладывать на него условий, то datastore создается, sql выражение работает. - драйвер скорее всего переварит строковое значение даты '01.01.2000', а не {} и тут нужен формат совпадающий с вашей локалью. нет, '01.01.2000' он не переваривает, так же, как не переваривает '20000101', '2000-01-01'. Фигурные скобки поставил, т.к. такие скобки прокатывают в дбф-вьюере. Я не настаиваю, что должны быть именно они, т.к. и сам вижу что это не срабатывает. Какой формат нужно указать - это и был мой вопрос :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 15:08 |
|
Условие на дату для DBF
|
|||
---|---|---|---|
#18+
DimmaN, Хорошо, в PB в SQL спроси SELECT {Date} FROM dataaf и посмотри что возвращает. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 15:23 |
|
Условие на дату для DBF
|
|||
---|---|---|---|
#18+
Я помню пришлось долго искать, чтобы выражение как дата воспринималась Конечно я подобрал выражение, но уплевался весь После этого делал либо перегонку dbf в excel или access, либо использовал прямой парсинг в dw, а потом уже обработку ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 16:18 |
|
Условие на дату для DBF
|
|||
---|---|---|---|
#18+
IkirDimmaN, Хорошо, в PB в SQL спроси SELECT {Date} FROM dataaf и посмотри что возвращает. Этот запрос не будет обработан. Зарезервированные слова квотируют так: [Date]. Но это так, не в тему :). Если запрос написать правильно, то при исполнении в ISQLSession возвращаются даты в формате дд.мм.гггг. spas2001Я помню пришлось долго искать, чтобы выражение как дата воспринималась Конечно я подобрал выражение, но уплевался весь После этого делал либо перегонку dbf в excel или access, либо использовал прямой парсинг в dw, а потом уже обработку И как надо писать, не помните? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 16:26 |
|
Условие на дату для DBF
|
|||
---|---|---|---|
#18+
DimmaN, Если бы он не мог преобразовать строку в дату, то ошибка была бы другая, типа String to date conversion error. Такой запрос выполняется: SELECT * FROM dataaf WHERE dataaf.[Date] < today(); ? а такой SELECT * FROM dataaf WHERE dataaf.Date < today() PS По рукам бы разработчикам называющих поля таблиц зарезервированными словами. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2012, 17:06 |
|
Условие на дату для DBF
|
|||
---|---|---|---|
#18+
Для работы с dbf пользуюсь описанием usingdbaseexpressions.pdf Можно поискать в инете. Там указано : ..... Date Special numeric value representing a date. Literal use: {03/10/1999} .... Function use: DTOS(DATE()) ..... Date Functions: ACCDATE(<string>) AGE(<date>) CTOD(<string>) DATE() DAY(<date>) DOBINDAYS(<date>) DOW(<date>) DOY(<date>) DTOC(<date>) DTOS(<date>) MONTH(<date>) STOD(<string>) WDATE(<date>, <format>) YEAR(<date>) Приложить файл не могу - он больше 150кб ( 680 кб ) Good Luck ! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 10:40 |
|
Условие на дату для DBF
|
|||
---|---|---|---|
#18+
Валерий правильно написал Кажется использовал date(), но сейчас не помню ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 11:54 |
|
Условие на дату для DBF
|
|||
---|---|---|---|
#18+
>= #01/03/2012# ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 16:38 |
|
Условие на дату для DBF
|
|||
---|---|---|---|
#18+
не, не прокатит Надо посмотреть через DBF навигатор, точно формат у структуры DBF дата, а то может строка ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 17:04 |
|
Условие на дату для DBF
|
|||
---|---|---|---|
#18+
Riska>= #01/03/2012# Почему бы не воспользоваться документацией ? #01/03/2012# {01/03/2012} Good Luck ! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 17:53 |
|
Условие на дату для DBF
|
|||
---|---|---|---|
#18+
ChV, спасибо большое. Это именно то, что я хотел найти. Но, к сожалению, не помогло. Видимо, ОДБСи драйвер нужен другой. Не все функции из этого списка поддерживает (см. картинку). Обошел другим путем, создал датавинду на SQL Select'e с ретрив аргументом, там условие накладывается нормально. Ну и поcкольку мне нужно в запрос разные таблицы подкладывать делаю modify ("DataWindow.Table.Select =........ ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2012, 10:33 |
|
Условие на дату для DBF
|
|||
---|---|---|---|
#18+
картинку-то зобыл ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2012, 10:34 |
|
Условие на дату для DBF
|
|||
---|---|---|---|
#18+
DimmaN, из документации : DTOS(<date>) Returns a character string (YYYYMMDD format) derived from <date>. Return type: String Example DTOS(Contact2->UDATE) returns 19981024. У меня работает ( драйвер PB INTERSOLV OEM 3.11 ) : ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2012, 12:00 |
|
Условие на дату для DBF
|
|||
---|---|---|---|
#18+
DimmaN, согласен, что, возможно, не все функции поддерживаются. Но другого описания не попадалось. Здесь же почти все работает. Могу выслать usingdbaseexpressions.pdf ответным письмом. Картинку прилагаю. Good Luck ! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2012, 12:21 |
|
|
start [/forum/topic.php?fid=15&msg=37864805&tid=1335527]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
149ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
83ms |
get tp. blocked users: |
2ms |
others: | 10ms |
total: | 283ms |
0 / 0 |