Имя: Пароль:
1C
 
Пустая дата в Access.
0 kirill_sid
 
28.06.07
07:35
Доброго времени суток!

Вопрос в следующем - как в Access через ADO впихнуть пустую дату? Представление пустой даты 1С ('00010101') - воспринимается Access'ом как 01.01.2001. :-(

Для добавления новой записи пишу такой код:
ADOCommand.CommandText =
"INSERT INTO
|    ORDERS(ORDERNUMBER,
|.....
|        OUTPUTDATE,
|        PRODSALEDATE,
|.....
|    VALUES('"+СокрЛП(Номер)+"',
|        '"+?(ЗначениеЗаполнено(Дата1), Дата1, Дата("00010101"))+"',
|        '"+?(ЗначениеЗаполнено(Дата2), Дата2, Дата("00010101"))+"',

Мысли следующие:
1. Может быть в Access есть литералы для представления пустой даты?
2. Может быть в качестве пустой даты проканает 1С-овский Null? Тогда как впихнуть этот параметр в запрос?

Заранее всем спасибо.
1 kirill_sid
 
28.06.07
09:12
up
2 Регистратор
 
28.06.07
09:13
прокатит NULL но не 1с - овский, можно ведь вообще это поле не включать в insert или в инструкции поставить в текст NULL. в принципе если нет конкретной даты для установки то по логике значение даты должно быть NULL а не пустое значение.
3 kirill_sid
 
28.06.07
10:03
Я вот тоже думаю, что должно быть NULL. Но когда я вставляю в текст команды вместо: Дата("00010101") - "NULL" или "'NULL'", то при выполнении команды возникает ошибка: "Ошибка синтаксиса в инструкции INSERT INTO".

"...вообще это поле не включать в insert..." - это-то понятно. Но это только при инсерте, а если поле даты очищается и нужно сделать Апдейт?

Какие-нибудь ещё мысли будут?
4 BSV
 
28.06.07
10:18
А это ""?
5 kirill_sid
 
28.06.07
10:30
Аналогично - ругается. Вроде как - несоответствие типов, при попытке строку записать в поле с типом "Дата".
6 kirill_sid
 
28.06.07
10:51
up
7 774816
 
28.06.07
14:00
INSRT INRO TABLE (F1,F2,DATA)
VALUES(1,2,NULL)
так можно ввести пустое значение нуль в любой тип поля
и NULL без одинарных кавычек в тексте запроса

VALUES('"+СокрЛП(Номер)+"',
|        "+?(ЗначениеЗаполнено(Дата1), Дата1, "NULL"))+",
|        "+?(ЗначениеЗаполнено(Дата2), Дата2, "NULL"))+",
так попробуй
8 kirill_sid
 
28.06.07
14:44
Спасибо всем. Все заработало.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.