Формат дата в ADO
От: jarad  
Дата: 16.05.05 13:59
Оценка:
Подключаюсь к дбф базе через АДО, ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\base\;Extended Properties=dBase IV;";
В дбф файле дата лежит в виде 01.01.05, подлючение работает, но необходимо на поле даты наложить фильтр, по типу
WHERE DATE = '01.01.05', и вот тут начинают вылазить ошибки. Форматы '01.01.05', {^2005-01-01}, не подходят. В каком виде можно записать дату, чтобы наложить фильтр?
Re: Формат дата в ADO
От: B0rG  
Дата: 16.05.05 14:30
Оценка:
Здравствуйте, jarad, Вы писали:

а так,

'2005-12-13'
??
Re: Формат дата в ADO
От: OLEGus1 Россия  
Дата: 16.05.05 14:55
Оценка:
Здравствуйте, jarad, Вы писали:

J>WHERE DATE = '01.01.05', и вот тут начинают вылазить ошибки.

а еще бывает так: "#2005-12-01#"
Crescite, nos qui vivimus, multiplicamini
Re[2]: Формат дата в ADO
От: jarad  
Дата: 16.05.05 14:57
Оценка:
Здравствуйте, B0rG, Вы писали:

BG>а так,


BG>'2005-12-13'

BG>??

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 под "первым" — ругается на "пропущенное значение"...
Re[2]: Формат дата в ADO
От: jarad  
Дата: 16.05.05 15:00
Оценка:
Здравствуйте, OLEGus1, Вы писали:

OLE>Здравствуйте, jarad, Вы писали:


J>>WHERE DATE = '01.01.05', и вот тут начинают вылазить ошибки.

OLE>а еще бывает так: "#2005-12-01#"

5 баллов!
WHERE DATE = #2005-12-01#
Re: Формат дата в ADO
От: nzeemin Россия http://nzeemin.livejournal.com/
Дата: 17.05.05 04:19
Оценка:
Здравствуйте, jarad, Вы писали:

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


Насколько я понимаю, для того чтобы таких вопросов не возникало, в ADO есть Parameters: делаешь CreateParameter, присваиваешь ему значение через Value, затем Append его в коллекцию параметров команды и вызываешь команду. ADO должен сам преобразовать дату в нужный формат. Я прав?
Re: Формат дата в ADO
От: DDwag  
Дата: 17.05.05 04:49
Оценка:
"jarad" <41791@users.rsdn.ru> сообщил/сообщила в новостях следующее: news:1173573@news.rsdn.ru...
From: jarad

Подключаюсь к дбф базе через АДО, ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\base\;Extended Properties=dBase IV;";
В дбф файле дата лежит в виде 01.01.05, подлючение работает, но необходимо на поле даты наложить фильтр, по типу
WHERE DATE = '01.01.05', и вот тут начинают вылазить ошибки. Форматы '01.01.05', {^2005-01-01}, не подходят. В каком виде можно записать дату, чтобы наложить фильтр?
Формат дата в ADO Оценить


А может строкой выше WHERE DATE = '01.01.05' поставить:

SET DATEFORMAT dmy
___________________________________________________________

Rock'n'Roll
Posted via RSDN NNTP Server 1.9
Re: Формат дата в ADO
От: jarad  
Дата: 17.05.05 07:28
Оценка:
С датой разобрался, все нормально,
возник вопрос по соединению:
Запрос:
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)'.
Если комментирую строку со вторым джойном — все ок.
Re[2]: Формат дата в ADO
От: OLEGus1 Россия  
Дата: 17.05.05 07:53
Оценка:
Здравствуйте, jarad, Вы писали:

Все таки что типа этого

SELECT DATE AS DateDoc,
IDDOC, Doc.SP7998,Tab.SP8009
FROM 1SJOURN
INNER JOIN (INNER JOIN DT8012 Tab ON (Tab.IDDOC = 1SJOURN.IDDOC) AND (1SJOURN.LINENO = Tab.LINENO)) ON Doc.IDDOC = 1SJOURN.IDDOC
WHERE (1SJOURN.IDDOCDEF LIKE '%66K%')
AND (1SJOURN.DATE >= #2005-04-01#)
ORDER BY DATE
Crescite, nos qui vivimus, multiplicamini
Re[3]: Формат дата в ADO
От: jarad  
Дата: 17.05.05 08:07
Оценка:
Здравствуйте, OLEGus1, Вы писали:

OLE>Здравствуйте, jarad, Вы писали:


OLE>Все таки что типа этого


OLE>SELECT DATE AS DateDoc,

OLE>IDDOC, Doc.SP7998,Tab.SP8009
OLE>FROM 1SJOURN
OLE>INNER JOIN (INNER JOIN DT8012 Tab ON (Tab.IDDOC = 1SJOURN.IDDOC) AND (1SJOURN.LINENO = Tab.LINENO)) ON Doc.IDDOC = 1SJOURN.IDDOC
OLE>WHERE (1SJOURN.IDDOCDEF LIKE '%66K%')
OLE>AND (1SJOURN.DATE >= #2005-04-01#)
OLE>ORDER BY DATE

Идея то ясна но куда "слово" второго дойна с таблицей DН8012 втулить, алиас Doc присвоить...
Re[4]: Формат дата в ADO
От: OLEGus1 Россия  
Дата: 17.05.05 08:14
Оценка:
Здравствуйте, jarad, Вы писали:

J>Идея то ясна но куда "слово" второго дойна с таблицей DН8012 втулить, алиас Doc присвоить...

from
Crescite, nos qui vivimus, multiplicamini
Re[5]: Формат дата в ADO
От: jarad  
Дата: 17.05.05 08:28
Оценка:
Здравствуйте, OLEGus1, Вы писали:

OLE>Здравствуйте, jarad, Вы писали:


J>>Идея то ясна но куда "слово" второго дойна с таблицей DН8012 втулить, алиас Doc присвоить...

OLE>from
SELECT DATE AS DateDoc,
IDDOC, Doc.SP7998,Tab.SP8009
FROM 1SJOURN, DH8012 Doc
INNER JOIN (INNER JOIN DT8012 Tab ON (Tab.IDDOC = 1SJOURN.IDDOC) AND (1SJOURN.LINENO = Tab.LINENO)) ON Doc.IDDOC = 1SJOURN.IDDOC
WHERE (1SJOURN.IDDOCDEF LIKE '%66K%')
AND (1SJOURN.DATE >= #2005-04-01#)
ORDER BY DATE
Ошибка синтаксиса в предложении FROM
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.