Как следует из документации, драйвер Btrieve эмулирует работу append путем удаления ключей.
Оператор build(file), выполненный после цикла добавления по append и до закрытия файла, должен заново построить ключи.
Проблема в том, что у меня (5.5 G) это не работает: т.е. ключи после append не строятся ни через build(file), ни через build(key1); build(key2)...
Не работает build(key) и после закрытия и заново открытия файла.
Вероятно, надо использовать Btrieve API, чтобы выполнить Create Index, но я не знаю, как это сделать: нет документации по API и, главное, там потребуется описание структуры ключей, что весьма неудобно.
Пока я это проверял только под локальной Btrieve v6.15.430 for Windows NT/Windows 95 Client Engine. Но судя по опыту работы с Btrieve for Novell и программы на Clarion for Dos 3.1, это не заработает и с Novell/NT/2000/XP.
Еще одна странность: build(FILE) после открытия файла создает вообще непонятный файл, в котором вся информация находится в открытом виде, как будто перед этим отменили использование Owner.
Помогите советом, можно ли заставить работать append. Уж больно различается время запонения базы по сравнению с add.
Bourkov Andrei bav@makler.ru
Написал: ClaList(2)
Btrieve: проблема BUILD после APPEND
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Как ты себе представляешь удаление ключей в сетевом режиме??????Оператор build(file), выполненный после цикла добавления по append и до закрытия файла, должен заново построить ключи.
Ну есть такая фигня. Не умеет к баальшому сожалению Кларын драйвер нормально создавать/строить ключи в BTRIEVE-файле.Проблема в том, что у меня (5.5 G) это не работает: т.е. ключи после append не строятся ни через build(file), ни через build(key1);
build(key2)...
Не работает build(key) и после закрытия и заново открытия файла.
Есть утилиты BTRIEVE. Одна из них butil запускается из командной строки...Вероятно, надо использовать Btrieve API, чтобы выполнить Create Index, но я не знаю, как это сделать: нет документации по API и, главное, там потребуется описание структуры ключей, что весьма неудобно.
Остальными утилитами можешь получить и стукртуру файла и ключей...
Это очередной глюк драйвераЕще одна странность: build(FILE) после открытия файла создает вообще непонятный файл, в котором вся информация находится в открытом виде, как будто перед этим отменили использование Owner.
Оно того стоит???Помогите советом, можно ли заставить работать append. Уж больно различается время запонения базы по сравнению с add.
С уважением, Ставич Олег
Укрсиббанк г.Харьков
oldstav@ukrsibbank.com
Написал: ClaList(2)
Btrieve does not support non-key updates. To emulate APPEND() behavior, the driver drops all indexes possible when APPEND() is first called. Calling BUILD() immediately after appending records rebuilds the dropped key fields.Оператор build(file), выполненный после цикла добавления по append и до закрытия файла, должен заново построить ключи.
Для ПЕРЕСТРОЕНИЯ ключей надо открывать файл в монопольном режиме.Вероятно, надо использовать Btrieve API, чтобы выполнить Create Index, но я не знаю, как это сделать: нет документации по API и, главное, там потребуется описание структуры ключей, что весьма неудобно.
После BUILD проверь код ошибки.
Это действительно так. Чтобы сохранить шифрацию необходимо BUILD по всем ключам.Еще одна странность: build(FILE) после открытия файла создает вообще непонятный файл, в котором вся информация находится в открытом виде, как будто перед этим отменили использование Owner.
Нормально не заставишь. Ключи перестраивает серверная часть и на выделенном сервере различия по времени заполнения не будут.Помогите советом, можно ли заставить работать append. Уж больно различается время запонения базы по сравнению с add.
--
Сергей Редькин mailto:SPR@enigmasoft.com.ua
ЧП "Энигма Софт"
Написал: ClaList(2)
Я в отпуске был, только вышел, но хочу предложить свой вариант.
У одного из наших клиентов совершенно непонятно почему вдруг развалился файл(тоже бэтривовский). В принципе, его можно было удалить, но в нем была информация о платежах, которые банк еще не провел (состояния документов), поэтому удаление было в принципе критично для клиента. Тогда я вставил в программу такие строки:
close(sdoc)
open(sdoc,12h)
pack(sdoc)
close(sdoc)
При первом же входе в процедуру просмотра все документы появились на экране. Может, попробуешь PACK вместо BUILD?
--
Best regards,
Anatoly mailto:warthog@belarusbank.minsk.by
Написал: ClaList(2)
У одного из наших клиентов совершенно непонятно почему вдруг развалился файл(тоже бэтривовский). В принципе, его можно было удалить, но в нем была информация о платежах, которые банк еще не провел (состояния документов), поэтому удаление было в принципе критично для клиента. Тогда я вставил в программу такие строки:
close(sdoc)
open(sdoc,12h)
pack(sdoc)
close(sdoc)
При первом же входе в процедуру просмотра все документы появились на экране. Может, попробуешь PACK вместо BUILD?
--
Best regards,
Anatoly mailto:warthog@belarusbank.minsk.by
Написал: ClaList(2)