Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
03.07.2012, 13:25
|
|||
---|---|---|---|
|
|||
Условие на дату для DBF |
|||
#18+
Добрый день! С помощью функции SyntaxFromSQL создаю код для datastore, в который качаю данные из ДБФ. Не могу наложить в запросе условие на дату. Вот такой код: Код: sql 1. 2. 3. 4.
выдает ошибку. Если к строке не подклеивать условие на дату, то все работает. Подскажите как все-таки наложить это условие? Может преобразовать дату к строке "ггггммдд" и дальше сравнивать строки, но какой функцией делать преобразование? PB 11.1, драйвер Driver do Microsoft dBase ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.07.2012, 14:51
|
|||
---|---|---|---|
Условие на дату для DBF |
|||
#18+
DimmaN, Не знаю причем тут PB, но ошибка в синтаксисе. Проще всего добиться работоспособности SQL-выражения в каком-нибудь commandere и воспроизвести его уже в PB. Есть подозрения, что - поле dataaf.[Date] -так не называется - драйвер скорее всего переварит строковое значение даты '01.01.2000', а не {} и тут нужен формат совпадающий с вашей локалью. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.07.2012, 15:08
|
|||
---|---|---|---|
|
|||
Условие на дату для 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:23
|
|||
---|---|---|---|
Условие на дату для DBF |
|||
#18+
DimmaN, Хорошо, в PB в SQL спроси SELECT {Date} FROM dataaf и посмотри что возвращает. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.07.2012, 16:18
|
|||
---|---|---|---|
Условие на дату для DBF |
|||
#18+
Я помню пришлось долго искать, чтобы выражение как дата воспринималась Конечно я подобрал выражение, но уплевался весь После этого делал либо перегонку dbf в excel или access, либо использовал прямой парсинг в dw, а потом уже обработку ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.07.2012, 16:26
|
|||
---|---|---|---|
|
|||
Условие на дату для DBF |
|||
#18+
IkirDimmaN, Хорошо, в PB в SQL спроси SELECT {Date} FROM dataaf и посмотри что возвращает. Этот запрос не будет обработан. Зарезервированные слова квотируют так: [Date]. Но это так, не в тему :). Если запрос написать правильно, то при исполнении в ISQLSession возвращаются даты в формате дд.мм.гггг. spas2001Я помню пришлось долго искать, чтобы выражение как дата воспринималась Конечно я подобрал выражение, но уплевался весь После этого делал либо перегонку dbf в excel или access, либо использовал прямой парсинг в dw, а потом уже обработку И как надо писать, не помните? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.07.2012, 17:06
|
|||
---|---|---|---|
Условие на дату для DBF |
|||
#18+
DimmaN, Если бы он не мог преобразовать строку в дату, то ошибка была бы другая, типа String to date conversion error. Такой запрос выполняется: SELECT * FROM dataaf WHERE dataaf.[Date] < today(); ? а такой SELECT * FROM dataaf WHERE dataaf.Date < today() PS По рукам бы разработчикам называющих поля таблиц зарезервированными словами. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.07.2012, 10:40
|
|||
---|---|---|---|
Условие на дату для 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, 11:54
|
|||
---|---|---|---|
Условие на дату для DBF |
|||
#18+
Валерий правильно написал Кажется использовал date(), но сейчас не помню ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.07.2012, 16:38
|
|||
---|---|---|---|
Условие на дату для DBF |
|||
#18+
>= #01/03/2012# ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.07.2012, 17:04
|
|||
---|---|---|---|
Условие на дату для DBF |
|||
#18+
не, не прокатит Надо посмотреть через DBF навигатор, точно формат у структуры DBF дата, а то может строка ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.07.2012, 17:53
|
|||
---|---|---|---|
Условие на дату для DBF |
|||
#18+
Riska>= #01/03/2012# Почему бы не воспользоваться документацией ? #01/03/2012# {01/03/2012} Good Luck ! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.07.2012, 10:33
|
|||
---|---|---|---|
|
|||
Условие на дату для DBF |
|||
#18+
ChV, спасибо большое. Это именно то, что я хотел найти. Но, к сожалению, не помогло. Видимо, ОДБСи драйвер нужен другой. Не все функции из этого списка поддерживает (см. картинку). Обошел другим путем, создал датавинду на SQL Select'e с ретрив аргументом, там условие накладывается нормально. Ну и поcкольку мне нужно в запрос разные таблицы подкладывать делаю modify ("DataWindow.Table.Select =........ ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.07.2012, 10:34
|
|||
---|---|---|---|
|
|||
Условие на дату для DBF |
|||
#18+
картинку-то зобыл ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.07.2012, 12:00
|
|||
---|---|---|---|
Условие на дату для 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:21
|
|||
---|---|---|---|
Условие на дату для DBF |
|||
#18+
DimmaN, согласен, что, возможно, не все функции поддерживаются. Но другого описания не попадалось. Здесь же почти все работает. Могу выслать usingdbaseexpressions.pdf ответным письмом. Картинку прилагаю. Good Luck ! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=15&tablet=1&tid=1335527]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 249ms |
total: | 403ms |
0 / 0 |