Книга знаний

1С:Предприятие / Приемы программирования / Встроенный язык

Глюк XBase: Добавление записей и КоличествоЗаписей()

Автор статьи:
Последняя редакция №1 от 19.04.06
URL: http://kb.mista.ru/article.php?id=162

Ключевые слова: СоздатьФайл(), ОткрытьФайл(), КоличествоЗаписей(), глюк


При использовании метода КоличествоЗаписей() после Добавить() и до Записать() для файлов открытых с помощью ОткрытьФайл() метод Записать() может не записать в БД ничего, при этом 1с не выдает никакой ошибки.

Пример:
1 вызов функции добавит запись, 2 - нет.

Функция СоздДБФ()
   ДБФ = СоздатьОбъект("XBase");
   
   ДБФ.ДобавитьПоле("N", 1, 10, );
   ДБФ.ДобавитьПоле("ID_b", 2, 70, );
   ДБФ.ДобавитьИндекс("IDX_N", "N", 1, 0,);
   ДБФ.ДобавитьИндекс("IDX_IDb", "ID_b", 0, 0,);
   ДБФ.КодоваяСтраница(КодировкаБД);
   Если ФС.СуществуетФайл(ПутьЭкспорта + ИмяДБФИД + ".dbf") = 0 Тогда
       ДБФ.СоздатьФайл(ПутьЭкспорта + ИмяДБФИД + ".dbf", ПутьЭкспорта + ИмяДБФИД + ".cdx");
   Иначе
       ДБФ.ОткрытьФайл(ПутьЭкспорта + ИмяДБФИД + ".dbf",, 0);
       ДБФ.СоздатьИндексныйФайл(ПутьЭкспорта + ИмяДБФИД + ".cdx");
       ДБФ.Переиндексировать();
   КонецЕсли;
   
   ДБФ.Добавить();
   ДБФ.N = ДБФ.КоличествоЗаписей();
   ДБФ.Записать();
   Возврат ДБФ.N;
   ДБФ.ЗакрытьФайл();
КонецФункции



Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика