Форум: "Базы";
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];
ВнизПомогите советом, сломалась таблица parodox. Найти похожие ветки
← →
sniknik (2002-03-18 10:51) [5]В Delphi просто положи на форму DbGreed,Table,DataSource свяжи их и открой таблицу Это уже больше покажет чем в Database Desktop. Дальше проверь может в таблице есть пропуски или дублированные поля (при имеющихся в таблици автоинкрементных полях это смертельно для индексов - > может быть "Key Violation"). Дальше функция востанавливающая индексы
(просто на кнопку повесь)
Check(DbiRegenIndexes(Table.Handle));
возможно до этой функции любое действие ~(удаление Ctrl+Del) будет давать ошибку.
и под занавес чтобы физически удалить удаленные записи (почистить таблицу)
procedure TForm1.PackTable(Table: TTable);
var
Props: CURProps;
hDb: hDBIDb;
TableDesc: CRTblDesc;
begin
if not Table.Active then raise EDatabaseError.Create("Table must be opened to pack");
if not Table.Exclusive then raise EDatabaseError.Create("Table must be opened exclusively to pack");
Check(DbiGetCursorProps(Table.Handle, Props));
if (Props.szTableType = szPARADOX) then begin
FillChar(TableDesc, sizeof(TableDesc), 0);
Check(DbiGetObjFromObj(hDBIObj(Table.Handle), objDATABASE, hDBIObj(hDb)));
StrPCopy(TableDesc.szTblName, Table.TableName);
StrPCopy(TableDesc.szTblType, Props.szTableType);
TableDesc.bPack := True;
Table.Close;
Check(DbiDoRestructure(hDb, 1, @TableDesc, nil, nil, nil, False));
end else
if (Props.szTableType = szDBASE) then Check(DbiPackTable(Table.DBHandle, Table.Handle, nil, szDBASE, True))
else raise EDatabaseError.Create("Table must be either of Paradox or dBASE type to pack");
Table.Open;
end;
функции стандартные взяты из хелпа делфи. таблици должны быть открыты в монопольном режиме. (не получится шли мне попробую чтонибудь сделать)
рекомендовать чтото глупо все одно что совета спрашивать (единственный смысл в советах чтобы было кого обвинить если не получится). но если просиш ставь MS SQL или еще лутше Pervasive (Btrieve, мне кажется он лутше "легче", возможностей больше но со структурой заколебешся разбиратся)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.005 c