![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Упаковка dbf [D6, dBase, FoxPro]
veres © (2005-12-05 16:33:00)Добрый день! Помогите, пожалуйста разобраться с упаковкой dbf-таблиц. В справке нашел DbiPackTable, но не могу понять, как ее использовать. Если можно, напишите, пожалуйста пример если не сложно.
Спасибо.
veres (2005-12-05 17:31:00) [1]Спасибо!
Типа сам себе ответил?
veres (2005-12-05 17:20:00) [2]
> veres (05.12.05 17:02) [6]
Вот тебе выжимка для Dbase:
procedure PackTable(Table: TTable);
var
Props: CURProps;
ta,te: Boolean;
begin
ta := Table.Active;
te := Table.Exclusive;
Table.Close;
Table.Exclusive := True;
Table.Open;
try
Check(DbiGetCursorProps(Table.Handle, Props));
if (Props.szTableType = szDBASE) then
Check(DbiPackTable(Table.DBHandle, Table.Handle, nil, szDBASE, True))
else
raise EDatabaseError.Create('Table must be dBASE type to pack');
finally
Table.Close;
Table.Exclusive := te;
Table.Active := ta;
end;
end;
veres (2005-12-05 17:02:00) [3]Вот уж действительно парюсь, ну что поделаешь, если новичок... не могу еще с пониманием читать справку.
Может все таки с копированием проще...
veres (2005-12-05 16:59:00) [4]
> Anatoly Podgoretsky © (05.12.05 16:57) [4]
Да, спасибо, но я не пойму куда и как использовать
procedure PackTable(Table: TTable);
Anatoly Podgoretsky (2005-12-05 16:57:00) [5]veres (05.12.05 16:42) [1]
Так оно и есть и пример рабочий.
veres (2005-12-05 16:55:00) [6]
> ANB © (05.12.05 16:45) [2]
> Решение - паковать копированием и не парится.
Поясни, пожалуйста...
ANB (2005-12-05 16:45:00) [7]
> veres (05.12.05 16:42) [1]
dbf таблицы не рекомендуется упаковывать командой PACK.
1. Рисковая операция (можно потерять данные)
2. Не упаковываются мемо файлы
Решение - паковать копированием и не парится.
veres (2005-12-05 16:42:00) [8]Я понимаю, любой может ответить, что с той справке и есть пример. Но в том то и дело, не могу с тем примером разобраться, помогите на конкретной одной Table1, пожалуйста.