Подключаюсь к базе DBF и выполняю простые команды:
ADO = ÑîçäàòüÎáúåêò("ADODB.Recordset");
ADO.Open("SELECT * FROM buffer.dbf","Driver={Microsoft Visual FoxPro Driver}; SourceType=DBF; SourceDB=D:\maykov",2,2,1);
ADO.AddNew();
ADO.Fields("NumDoc").Value = "154468";
ADO.Update();
После чего выскакивает ошибка!!!
Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][ODBC Visual FoxPro Driver]Field DATEDOC does not accept null values.
Самое обидное, что запись в таблицу корректно добавляется, но программа остановлена.
Если в таблице разрешить .Null. значение для всех полей, все проходит ок, но менять базу не хочется!
Заполнять все поля... можно... но вдруг, кто добавт еще поле в базу!!!
Решил проблему... но по циклу только... некрасиво :)
Процедура ЗаполнитьПустыми(Base)
Для К=0 По (Base.Fields.Count()-1) Цикл
Если (Base.Fields(К).Type = 133) Тогда
Base.Fields(К).Value = '';
ИначеЕсли (Base.Fields(К).Type = 129) Тогда
Base.Fields(К).Value = "";
ИначеЕсли (Base.Fields(К).Type = 131) Тогда
Base.Fields(К).Value = 0;
ИначеЕсли (Base.Fields(К).Type = 11) Тогда
Base.Fields(К).Value = -1;
КонецЕсли;
КонецЦикла;
КонецПроцедуры // ЗаполнитьПустыми()
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс