![]() |
![]() ![]() ![]() ![]() |
|
Упаковка таблиц Paradox и dBaseDelphi , Базы данных , Paradox
Автор: Александр
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Упаковка таблиц Paradox & dBase
Процедура упаковки таблиц Paradox & dBase.
В процедуру передается TTable c любым состоянием свойства Active.
Состояние Active после выполнения процедуры остается предыдущим.
Процедура предусматривает отключение всех визуальных DbControls,
с последующим их подключением.
Зависимости: Bde, Db, DbTables
Автор: Александр, dbwork@kor.kes.ru, Кореновск
Copyright: Из исходного кода Database Workshop 4.12 (c)2002 Degisy Software
Дата: 23 мая 2002 г.
***************************************************** }
procedure Bde_PackTable(DataSet: TDataSet);
var
hDb: hDBIDb;
Tbl: TTable;
Props: CURProps;
CrDesc: CRTblDesc;
Save: Boolean;
begin
if (DataSet is TTable) then
begin
Tbl := TTable(DataSet);
Save := Tbl.Active;
Tbl.Active := True;
try
Check(DbiGetCursorProps(Tbl.Handle, Props));
if (Props.szTableType = szPARADOX) then
begin
FillChar(CrDesc, SizeOf(CRTblDesc), 0);
StrCopy(CrDesc.szTblName, Props.szName);
StrCopy(CrDesc.szTblType, Props.szTableType);
CrDesc.bPack := True;
Check(DbiGetObjFromObj(hDBIObj(Tbl.Handle), objDATABASE, hDBIObj(hDb)));
Tbl.DisableControls;
Tbl.Active := False;
Check(DbiDoRestructure(hDb, 1, @CrDesc, nil, nil, nil, False));
end
else if (Props.szTableType = szDBASE) then
begin
Tbl.Active := True;
Check(DbiPackTable(Tbl.DBHandle, Tbl.Handle, nil, szDBASE, True));
end;
finally
Tbl.Active := Save;
Tbl.EnableControls;
end;
end;
end;
Пример использования: Bde_PackTable(Table1); Программный код на Delphi для упаковки таблиц в базах данных Paradox и dBase с помощью BDE (Borland Database Engine). Процедура принимает объект Вот шаг за шагом, что происходит в коде:
Код также включает в себя обработку ошибок с помощью операторов Возможный альтернативный способ решения: Вместо использования BDE можно использовать интерфейс Пример кода: В этом коде используется метод Вы можете вызвать эту процедуру, например: Обратите внимание, что это процедура предполагает, что дата-сет является объектом Процедура упаковки таблиц Paradox и dBase, которая отключает все визуальные DbControls, выполняет упаковку таблицы и последовательно подключает и отключает контролы. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||