Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Распространение программ BCB 5


Автор: Rodion 5.12.2002, 03:17
Подскажите пожалуйста , как вручную(т.е. без исп.InstallSheldExpress и т.п)перенести программу на другой комп.(используется TAdsTable,TAdsQuery)
И еще один вопрос ,как создать/обновить индексный файл с исп.AdsTable1 и затем использовать его AdsTable2(оба тэйбла используют одну и ту-же таблицу FoxPro(*.dbf))?

Автор: Vyacheslav 5.12.2002, 22:26
Нужно скопировать следующие файлы:
ads.ini
ace32.dll
axcws32.dll
adsloc32.dll ansi.chr adslocal.cfg extend.chr
и если используется dictinary
XXXX.add (где XXXX - имя базы данных(не путать с именем таблицы)
XXXX.am
Можно свалить эти файлы(кроме двух последних) в директорию приложения
Последние два должны лежать в директории, гдн размещаются таблицы

При существующем индексе обновления не требуется: при вставке(изменении ) записи индекс обновляется автоматически
Если идет речь о переиндексации или создании нового индекска - эта операция  проводится при эксклюзивном открытии таблицы

Реиндексация
//Закрываем таблицы
AdsTable1->Active = false;
AdsTable2->Active = false;
//открываем одну из таблиц эксклюзивно
AdsTable1->Exclusive = true;
AdsTable1->Active = true;
AdsTable->ReIndex();
AdsTable1->Active  = false;
AdsTable1->Exclusive = false;

AdsTable1->Active = true;
AdsTable2->Active = true;

Аналогично с созданием индекса
только вместо Reindex нужно типа
AdsTable->AdsCreateIndex( '"", "Tag1", "LastName;DeptNum", "EmpId > 50", "", TAdsIndexOptions() <<optUNIQUE );


Автор: Rodion 6.12.2002, 18:05
Спасибо Вячеслав,попробую разобраться.Только вот еще один вопрос:Зачем использовать свойство AdsTable1->Exclusive;Какую роль это играет?
Спасибо еще раз.

Автор: Vyacheslav 6.12.2002, 19:57
Exclusive  - флаг открытия таблицы в режиме единоличного пользования. Если таблица уже открыта с Exclusive == true, любая попытка еще раз отрыть эту таблицу   вызовет сообщение об ошибке. Аналогично будет выдана ошибка, если уже таблицу открытую для совместного пользования   (Exclusive == false) попытаться открыть еще раз в режиме Exclusive == true. Эксклюзивный режим открытия используется для операций создания индексов, реиндексации, упаковки dbf таблиц(физического удаления удаленных записей) , удаления (физического) всех записей таблицы и реструктуризации таблицы

Автор: Rodion 7.12.2002, 01:44
Спасибо Вячеслав.Я бился над этим очень долго.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)