|
|
|
Формат представления даты в АДО
|
|||
|---|---|---|---|
|
#18+
Подключаюсь к дбф базе через АДО, ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\base\;Extended Properties=dBase IV;"; В дбф файле дата лежит в виде 01.01.2005, подлючение работает, но необходимо на поле даты наложить фильтр, по типу WHERE DATE = '01.01.2005', и вот тут начинают вылазить ошибки. Форматы '01.01.2005', {^2005-01-01}, не подходят. В каком виде можно записать дату, чтобы наложить фильтр? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2005, 18:05 |
|
||
|
Формат представления даты в АДО
|
|||
|---|---|---|---|
|
#18+
odbc формат даты: yyyy-mm-dd hh:mi:ss.mmm временную составляющую можно отбросить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2005, 18:43 |
|
||
|
Формат представления даты в АДО
|
|||
|---|---|---|---|
|
#18+
SELECT Jour.DATE AS DateDoc, Jour.IDDOC, Doc.SP7998 FROM 1SJOURN Jour INNER JOIN DH8012 Doc ON (Doc.IDDOC = Jour.IDDOC) WHERE (Jour.IDDOCDEF LIKE '%66K%') AND (Jour.DATE >= '2005-04-01') ORDER BY Jour.DATE Такой запрос. При записи даты в таком виде, ругается на несоответствие типов, чем их можно привести, или я пропускаю какие-то маркерные символы, типа {}... Еще заметил трабл, при добавлении еще одного INNER JOIN "под" первым, тоже ругается на "что-то пропущенное". АДО использует отличный синтаксис SQL? Или просто ограничивает к-во соединений... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2005, 18:52 |
|
||
|
Формат представления даты в АДО
|
|||
|---|---|---|---|
|
#18+
Нашел, дата пишеться в формате #2005-12-01#... Проблема с джойнами не исчезла... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2005, 19:00 |
|
||
|
Формат представления даты в АДО
|
|||
|---|---|---|---|
|
#18+
Еще заметил трабл, при добавлении еще одного INNER JOIN "под" первым, тоже ругается на "что-то пропущенное". приведи полный текст SELECT'а и полный stack-trace ошибки (не надо пересказывать сообщение своими словами, нужно оригинальное сообщение) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2005, 22:45 |
|
||
|
Формат представления даты в АДО
|
|||
|---|---|---|---|
|
#18+
Запрос: SELECT DATE AS DateDoc, IDDOC, Doc.SP7998,Tab.SP8009 FROM 1SJOURN INNER JOIN DH8012 Doc ON Doc.IDDOC = 1SJOURN.IDDOC INNER JOIN DT8012 Tab ON (Tab.IDDOC = 1SJOURN.IDDOC) AND (1SJOURN.LINENO = Tab.LINENO) WHERE (1SJOURN.IDDOCDEF LIKE '%66K%') AND (1SJOURN.DATE >= #2005-04-01#) ORDER BY DATE Ошибка: Microsoft JET Database Engine: Ошибка синтаксиса (пропущен оператор) в выражении запроса 'Doc.IDDOC = 1SJOURN.IDDOC INNER JOIN DT8012 Tab ON (Tab.IDDOC = 1SJOURN.IDDOC)'. Если комментирую строку со вторым джойном - все ок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 11:10 |
|
||
|
Формат представления даты в АДО
|
|||
|---|---|---|---|
|
#18+
2 Jarad может просто условие 2-го Join'а в скобки взять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 11:29 |
|
||
|
Формат представления даты в АДО
|
|||
|---|---|---|---|
|
#18+
Jarad... Ошибка: Microsoft JET Database Engine: Ошибка синтаксиса (пропущен оператор) в выражении запроса 'Doc.IDDOC = 1SJOURN.IDDOC INNER JOIN DT8012 Tab ON (Tab.IDDOC = 1SJOURN.IDDOC)'. Если комментирую строку со вторым джойном - все ок. Могу ошибаться с оценкой, но недавно мне самому показали, что новый "джет" воспринимает двойные INNER JOIN только тогда, когда первый обернут скобками... , типа так: SELECT DATE AS DateDoc, IDDOC, Doc.SP7998,Tab.SP8009 FROM ( 1SJOURN INNER JOIN DH8012 Doc ON Doc.IDDOC = 1SJOURN.IDDOC ) INNER JOIN DT8012 Tab ON (Tab.IDDOC = 1SJOURN.IDDOC) AND (1SJOURN.LINENO = Tab.LINENO) WHERE (1SJOURN.IDDOCDEF LIKE '%66K%') AND (1SJOURN.DATE >= #2005-04-01#) ORDER BY DATE З.Ы. моему удивлению и огорчению не было предела, ну зачем же так уродовать SQL-диалект, что до этого никто самостоятельно не в состоянии додуматься? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 11:30 |
|
||
|
Формат представления даты в АДО
|
|||
|---|---|---|---|
|
#18+
Ошибка осталась почти такая-же... SELECT DATE AS DateDoc, IDDOC, Doc.SP7998,Tab.SP8009 FROM (1SJOURN INNER JOIN DH8012 Doc ON Doc.IDDOC = 1SJOURN.IDDOC ) INNER JOIN DT8012 Tab ON (Tab.IDDOC = 1SJOURN.IDDOC) AND (1SJOURN.LINENO = Tab.LINENO) WHERE (1SJOURN.IDDOCDEF LIKE '%66K%') AND (1SJOURN.DATE >= #2005-04-01#) ORDER BY DATE Ошибка: Microsoft JET Database Engine: Ошибка синтаксиса (пропущен оператор) в выражении запроса 'Doc.IDDOC = 1SJOURN.IDDOC'. З.Ы. скобки вокруг 2-го джойна тоже не помогают: Ошибка: Microsoft JET Database Engine: Ошибка синтаксиса (пропущен оператор) в выражении запроса 'Doc.IDDOC = 1SJOURN.IDDOC (INNER JOIN DT8012 Tab ON (Tab.IDDOC = 1SJOURN.IDDOC) AND (1SJOURN.LINENO = Tab.LINENO))'. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 11:43 |
|
||
|
Формат представления даты в АДО
|
|||
|---|---|---|---|
|
#18+
Попробуй так: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 12:56 |
|
||
|
Формат представления даты в АДО
|
|||
|---|---|---|---|
|
#18+
Пробовал, Microsoft JET Database Engine: Отсутвует значение одного или нескольких параметров ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 13:06 |
|
||
|
Формат представления даты в АДО
|
|||
|---|---|---|---|
|
#18+
Хинт Втащи свои таблицы в Access и попробуй построить запрос там. Я именно так и сделал. Access сам тебе покажет этот недостающий параметр ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 13:11 |
|
||
|
Формат представления даты в АДО
|
|||
|---|---|---|---|
|
#18+
В аксессе поднялся запрос...сенкс... но, попытался вставить строку CASE WHEN Doc.SP7998 = 1 THEN Tab.SP8009 ELSE 0 END AS Summ, и в аксесе выдало ошибку, уловия кейс не поддерживаються? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 13:42 |
|
||
|
Формат представления даты в АДО
|
|||
|---|---|---|---|
|
#18+
JaradВ аксессе поднялся запрос...сенкс... но, попытался вставить строку CASE WHEN Doc.SP7998 = 1 THEN Tab.SP8009 ELSE 0 END AS Summ, и в аксесе выдало ошибку, уловия кейс не поддерживаються? угу, CASE WHEN ... THEN ... ELSE ... END это уже кусок "диалекта" Transact-SQL от MS SQL-Server. В "джете" должна поддерживаться аналогичная VB-функция CHOOSE() или IIF() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 13:51 |
|
||
|
Формат представления даты в АДО
|
|||
|---|---|---|---|
|
#18+
2 Jarad Посмотри документ Jet Expression Can Execute Unsafe Visual Basic for Applications Functions раздел - "Sandbox Mode Operations Allowed" Там есть список ф-й, поддерживаемых Jet (присутствуют и choose и IIF) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 14:03 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=33069286&tid=1353740]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
73ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 406ms |

| 0 / 0 |
