Ошибка "Неверна длина буфера данных" на программах DOS.
:gulp: У меня компьютер с Windows XP. Сеть Novell. Выполняются DOS программы на Паскале.
Регулярно, несколько раз в день во время выполнения появляется ошибка "Неверна длина буфера данных". Я думал связано с Novell, Pervasiv. Переустановил всё это, но не помогло. Помогает восстановление програмой WinRescue XP системных настроек. Но только на сутки. Вирусов нет, проверял разными программами. =============================================== :shot: В чём тут может быть дело ? Может в Windows XP ? =============================================== Ниже привожу Полный текст ошибки: --------------------------Error--------------------- Ошибка Btrieve операции Файл: R:\NI5\13201023.BTR Операция 12: Статус 22: Неверна длина буфера данных. ---------------------------------------------------- Ошибка появляется на разных файлах, статус меняется то 5 то 12, постоянная только нижняя строка. |
a715, 22 DATA BUFFER LENGTH
(Длина буфера данных) Параметр буфера данных имеет недостаточную длину для размещения длины записи данных, определенной при создании файла. Проверьте, чтобы длина буфера данных была по крайней мере такой же длины, как заданная длина записи файла. - Для операций Get или Step, если буфер данных слишком мал для размещения фиксированной части записи, Btrieve не возвратит какие-либо данные в буфер данных. Если запись является записью переменной длины и буфер данных слишком мал для размещения всей переменной части записи, Btrieve возвратит столько данных, сколько сможет, и статус 22, показывающий на не возможность возврата всей записи, - Для операции Insert Btrieve не добавит запись, если буфер данных короче, чем фиксированная часть записи. - Для операции Update, если буфер данных слишком мал для размещения фиксированной части записи, Btrieve не откорректирует запись. - Для операций Create,Stat и Create Supplemental Index статус 22 показывает, что буфер данных не достаточно длинный для размещения всех спецификаций файла и ключей и альтернативной последовательности поиска, если она требуется В дополнениие ссылочку даю. Там можно покопаться http://www.hardline.ru/2/22/1768/2172-8.html |
:dont-know Hromius, или кто-нибудь знающий. Подскажите,
что нужно сделать в этой ситуации. Какие настройки сделать, что изменить. И ещё, в сети есть другие такие же компьютеры, на которых эти программы выполняются без проблем и этой ошибки. Почему ? |
a715, Операция 12 - это GET FIRST.
GET FIRST (12) (Получить первую) Н а з н а ч е н и е : Get First ищет запись, соответствующую первому значению ключа для заданного пути доступа. О п и с а н и е : Операция Get First позволяет Вашей прикладной программе искать запись, соответствующую первому значению ключа для заданного номера ключа. П р е д в а р и т е л ь н ы е у с л о в и я : До того, как Ваша прикладная программа сможет запрсить операцию Get First должны быть выполнены следующие предварительные условия: - Файл должен быть открыт. - Файл не может быть файлом, состоящим только из данных без определенных индексов. П р о ц е д у р а : Для выполнения операции установите следующие Btrueve-параметры: - Проинициализируйте код операции значением 12. - Передайте блок позиции для файла. - Задайте номер ключа для данного пути доступа. - Задайте длину буфера данных. Р е з у л ь т а т : Если операция Get First завершилась успешно, Btrieve - Вернет требуемую запись в буфер данных. - Сохранит соответствующее значение ключа в буфере данных; - Вернет длину записи в параметр длины буфера данных. Если операция Get First не была успешной, Btrieve вернет ненулевой код статуса указывающий на причину. Наиболее часто встречающиеся ненулевые коды статуса: - 3 Файл не открыт - 6 Неверный номер ключа - 22 Буфер данных слишком мал Единственное что приходит на ум - это проверить объем предоставляемой памяти виртуальной и оперативной. |
Время: 23:35. |
Время: 23:35.
© OSzone.net 2001-