powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Формат представления даты в АДО
15 сообщений из 15, страница 1 из 1
Формат представления даты в АДО
    #33068035
Jarad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подключаюсь к дбф базе через АДО, 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}, не подходят. В каком виде можно записать дату, чтобы наложить фильтр?
...
Рейтинг: 0 / 0
Формат представления даты в АДО
    #33068124
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
odbc формат даты: yyyy-mm-dd hh:mi:ss.mmm
временную составляющую можно отбросить
...
Рейтинг: 0 / 0
Формат представления даты в АДО
    #33068143
Jarad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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? Или просто ограничивает к-во соединений...
...
Рейтинг: 0 / 0
Формат представления даты в АДО
    #33068162
Jarad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел, дата пишеться в формате #2005-12-01#...
Проблема с джойнами не исчезла...
...
Рейтинг: 0 / 0
Формат представления даты в АДО
    #33068409
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще заметил трабл, при добавлении еще одного INNER JOIN "под" первым, тоже ругается на "что-то пропущенное". приведи полный текст SELECT'а и полный stack-trace ошибки (не надо пересказывать сообщение своими словами, нужно оригинальное сообщение)
...
Рейтинг: 0 / 0
Формат представления даты в АДО
    #33068914
Jarad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запрос:
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)'.
Если комментирую строку со вторым джойном - все ок.
...
Рейтинг: 0 / 0
Формат представления даты в АДО
    #33068981
Cobalt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Jarad
может просто условие 2-го Join'а в скобки взять?
...
Рейтинг: 0 / 0
Формат представления даты в АДО
    #33068986
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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-диалект, что до этого никто самостоятельно не в состоянии додуматься?
...
Рейтинг: 0 / 0
Формат представления даты в АДО
    #33069025
Jarad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка осталась почти такая-же...
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))'.
...
Рейтинг: 0 / 0
Формат представления даты в АДО
    #33069286
ooops
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй так:
Код: plaintext
1.
2.
3.
4.
SELECT Jor.Date, Jor.IDDOC, Doc.SP7998, Tab.SP8009
FROM (1SJOURN AS Jor INNER JOIN DH8012 AS Doc ON Jor.IDDOC = Doc.IDDOC)
INNER JOIN DT8012 AS Tab ON (Jor.IDDOC = Tab.IDDOC) AND (Jor.LINENO = Tab.LINENO)
WHERE (((Jor.Date)>=# 2005 - 04 - 01 #) AND ((Jor.IDDOCDEF) Like '%66K%'))
ORDER BY Jor.Date
...
Рейтинг: 0 / 0
Формат представления даты в АДО
    #33069313
Jarad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробовал, Microsoft JET Database Engine: Отсутвует значение одного или нескольких параметров
...
Рейтинг: 0 / 0
Формат представления даты в АДО
    #33069329
ooops
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хинт
Втащи свои таблицы в Access и попробуй построить запрос там. Я именно так и сделал.
Access сам тебе покажет этот недостающий параметр
...
Рейтинг: 0 / 0
Формат представления даты в АДО
    #33069454
Jarad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В аксессе поднялся запрос...сенкс...
но, попытался вставить строку CASE WHEN Doc.SP7998 = 1 THEN Tab.SP8009 ELSE 0 END AS Summ, и в аксесе выдало ошибку, уловия кейс не поддерживаються?
...
Рейтинг: 0 / 0
Формат представления даты в АДО
    #33069483
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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()
...
Рейтинг: 0 / 0
Формат представления даты в АДО
    #33069514
ooops
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Jarad

Посмотри документ
Jet Expression Can Execute Unsafe Visual Basic for Applications Functions
раздел - "Sandbox Mode Operations Allowed"

Там есть список ф-й, поддерживаемых Jet (присутствуют и choose и IIF)
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Формат представления даты в АДО
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]