Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Pack [D5, Paradox]


roman001 ©   (2002-02-28 18:58:00) 

Подскажите пожалуйста как програмно паковать парадоксовые таблицы, а то они пухнит на глазах


roman001   (2002-03-03 19:20:00) [1]

Спасибо, буду пробовать


deleon   (2002-03-01 09:02:00) [2]

Еще одна библиотека компонент для работы с BDE и таблицами:
http://www.dbwork.kuban.ru/download/degisydb.zip


SDS   (2002-02-28 23:09:00) [3]

Вот код, одна процедура пакует одну таблицу, вторая все таблицу по имени алияса
Одна таблица

procedure PackParadoxTable(const ADatabaseName : string; const ATableName : string);
var
TblDesc : CRTblDesc;
TempDBHandle : HDBIDb;

begin
FillChar(TblDesc, sizeof(TblDesc), 0);
with TblDesc do begin
StrPCopy(szTblName, ATableName);
StrCopy(szTblType, szPARADOX);
bPack := true;
end;

try
Check(dbiOpenDatabase(PChar(ADatabaseName), Nil, dbiREADWRITE, dbiOpenExcl, Nil, 0, Nil, Nil, TempDBHandle));
try
Check(dbiDoRestructure(TempDBHandle, 1, @TblDesc, Nil, Nil, Nil, false));
finally
dbiCloseDatabase(TempDBHandle);
end;
except
end;
end;

Все таблицы

procedure PackAllParadoxTables(const ADatabaseName : string);
var
List : TStrings;
i : integer;
NewSession : TSession;

begin
NewSession := TSession.Create(nil);
List := TStringList.Create;
try
NewSession.SessionName := "NewSession";
NewSession.KeepConnections:= False;
NewSession.Open;
NewSession.GetTableNames(ADatabaseName, "*.db",False, False, List);
for i := 0 to List.Count - 1 do
PackParadoxTable(ADatabaseName, List[i]);
finally
List.Free;
NewSession.Free;
end;
end;


kirill2000   (2002-02-28 20:25:00) [4]

Необходимо скачать библиотеку по адресу http://alvg.far.ru/files/rxd6.exeустановить ее, а затем включить модуль BDEUtils.pas в свой проект (в Uses). Тогда будет доступен метод PackTable(TTable)


Наверх

Титульная страница Поиск, карта сайта Написать письмо