![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Упаковка файлов DBF [D6, dBase, FoxPro]
borg © (2003-05-13 09:03:00)Подскажите есть ли в DELPHI аналог команды pack из FOXPRO, то есть необходимо доконца удалять данные, а не помечатьт их как удалённые как это делается table1.delete.
MikeS (2003-05-15 08:42:00) [1]С древних времен известен универсальный способ упаковки:
1. Создаем таблицу2 с аналогичной структурой
2. Проход циклом по упаковываемой таблице с копированием записей в таблицу2
3. Удаляем таблицу1
4. Переименовываем таблицу2 в таблицу1
Melnyk (2003-05-14 11:57:00) [2]Удалено модератором
Примечание: Задай вопрос в СВОЕЙ ветке
Stray (2003-05-13 12:50:00) [3]Проблема легко решается если используешь BDE. А если нет? Я предпочитаю ADO. Пробовал решить проблему вот так:
...
dbfConnect: TADOConnection;
cmdPackTbl: TADOCommand;
...
dbfConnect.Connected := false; // обязательно необходимо
dbfConnect.Connected := true; // переконектиться
cmdPackTbl.CommandText := "pack total";
cmdPackTbl.execute;
в 2000 винде действует, а вот в 98 вроде как нет. К сожалению искать причину небыло времени. Так как особой надобности в упаковке не имел.
DSN Driver = Microsoft Visual Foxpro
Соловьев (2003-05-13 09:26:00) [4]Удалено модератором
Примечание: Задай вопрос в СВОЕЙ ветке
evg28 (2003-05-13 09:17:00) [5]try
TableServ.Close;
TableServ.Exclusive:= true;
TableServ.Open;
DbiPackTable(TableServ.DBHandle, TableServ.Handle, nil, nil, TRUE ) ;
TableServ.Close;
TableServ.Exclusive:= false;
TableServ.Open;
TableServ.First;
except
end;
VAleksey (2003-05-13 09:11:00) [6]uses bde;
dbipacktable...
описание в bde32.hlp