Запись в DBF файл. #502493


#0 by NGC6543
Если делать так, то запись в DBF файл не происходит, хотя и ошибок не выдает.     Если делать без индексов, то запись проходит. В чем проблема?
#1 by NGC6543
подскажите )) Индексы не могу убирать, искать надо ((
#2 by NGC6543
up
#3 by NGC6543
подскажите в какую сторону копать )))
#4 by smitru
А где закрывается файл после записи?
#5 by Aprobator
а запись добавляется точно уникальная? Нет там в файле уже записи с ID_Source = "2222222"?
#6 by NGC6543
ну если индексы убрать с того кода, то даже если не закрывать - все записывается. уникальная, до этого точно там таких записей небыло
#7 by Aprobator
кроме того, вот эту строчку стоит наверное все таки запихнуть перед созданием индексного файла, а не перед проверкой на его существование. И еще: ИмяФайлаТС чем отличается от ФайлТС? А то в коде явно какая то путаница с переменными.
#8 by NGC6543
В цикле там проверяются справочники по GUID - если не найден, записывается соответствие в DBF а при записи документов - снова ищется это соответствие. "раньше все работало" ))))) ИмяФайлаТС = ФайлТС
#9 by Aprobator
а записи типа "2222222 " или " 2222222"?
#10 by Aprobator
для теста попробуй сделать запись в изначально чистый файл.
#11 by NGC6543
В чистый файл запись проходит. Дублирующиеся записи поменял, теперь их нет по полю ID_Source (обработкой проверяю). Куда еще можно посмотреть? ) Хотя в коде есть строки которые, я думал, уберегут от дублирующихся.
#12 by Aprobator
где здесь контроль ввода повторяющейся  записи? Нефига не вижу. Для контроля наличия дублей можно поступить так: Создаем список (или ТЗ, если надо видеть какую сопутствующую инфу), открываем файл, пробегаемся по нему и записываем СокрЛП(IdSource). Затем перед добавлением новой записи - проверяем по сохраненной ранее инфе, а не было ли что то подобное уже.
#13 by Aprobator
опс - нашел в СП по XBASE: Синтаксис: КодОшибки Возвращаемое значение: Тип: Число. Код последней ошибки. Возвращаемые коды ошибок: -10 - Ошибка закрытия файла; -20 - Ошибка создания файла; -30 - Ошибка определения длины файла; -40 - Ошибка установки длины файла; -50 - Ошибка при попытке заблокировать файл; -60 - Ошибка при открытии файла; -70 - Ошибка чтения файла; -80 - Ошибка удаления файла; -90 - Ошибка переименования файла; -100 - Ошибка позиционирования в файле; -110 - Ошибка снятия блокировки с файла; -120 - Ошибка записи в файл; -200 - Файл не является базой данных DBF-формата; -210 - Неопознанное имя поля; -220 - Неопознанный тип поля; -230 - Запись слишком длинная; -300 - Индексный файл не содержит информации о записи; -310 - Нарушение структуры индексного файла; -330 - Указанное имя индекса недоступно; -340 - Ошибка уникальности индекса; -400 - Ожидается запятая или скобка; -410 - Выражение не завершено; -422 - IIF требует параметров одинаковой длины; -425 - У STR и SUBSTR 2-й и 3-й параметры - константы; -430 - Неверное число параметров; -440 - Слишком сложное выражение; -450 - Пропущена правая скобка; -460 - Неверный тип подвыражения; -500 - Выражение не завершено символом двойной кавычки; -920 - Недостаточно памяти. Описание: Получает код завершения последней выполненной операции. Пример:
#14 by Aprobator
+ на КодОшибки - 340 глянь
#15 by NGC6543
Обработку по нахождению дублей так и сделал. Когда должна отрабатывать "ТекИндекс.Уникальность" ? Я думал как раз в таких случаях. Спасибо большое за помощь! Сейчас гляну !
#16 by NGC6543
После каждой (попытки) записи сделал сообщить(БД_ТС.КодОшибки). Всегда выдает 0.
#17 by Aprobator
а после последнего ЗакрытьФайл? Фиг знает в какой момент там индекс контролируется.
#18 by Aprobator
Уникальность это свойство индекса. Оно ничего само по себе не проверяет.
#19 by Aprobator
кстати, может дубль возникает среди добавляющихся записей? Их то кидал в список контроля?
#20 by NGC6543
После закрытия тоже ошибка 0. В общем ошибок никаких нет, но запись не происходила. Проблема решилась когда удалил запись с пустыми полями. Теперь все хорошо. Почему нельзя записи с пустыми полями?
#21 by Aprobator
наверное они индекс "раздражают" )))
#22 by NGC6543
ну хоть бы ошибка какая выскакивала... ))
#23 by NGC6543
->
#24 by NGC6543
И еще раз спасибо !  :)
#25 by Aprobator
нз - может самому когда пригодится.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С