Форум: "Базы";
Текущий архив: 2002.05.13;
Скачать: [xml.tar.bz2];
ВнизКак удалить физически Найти похожие ветки
← →
Смолин (2002-04-17 12:36) [0]КАк в DELPHI физически удалить строки из dbf файла VFP 5.0.
Пожалуста код напишите.
Спасиба.
← →
Kuusiniemi (2002-04-17 12:56) [1]Г-н Смолин! А конференцию почитать слабо?? Не только первых две страницы, а чуть дальше??
← →
Den_ (2002-04-17 13:19) [2]Kuusiniemi ©
Всю конференцию просматривать долго, люди на работе всетаки а не дома ляжки тянут. Я очень корошо помню, здесь был отличный пример, я его искал поиском, но к сожелению ничего не нашел. У Вас нет ссылочки случайно на ветвь конференции с этим вопросом?
← →
Kuusiniemi (2002-04-17 13:30) [3]> Den_
Я, в общем-то, тоже на работе. :)) Но если мне надо что-то найти, я сначала САМ буду искать, а уж потом, если не найду - тогда буду спрашивать.
Что до ответа на вопрос, то функция эта - dbiPackTable.
А что до того, чтоб поискать - то вот Вам - ТОЖЕ САМОЕ ОБСУЖДЕНИЕ. Вопрос за 9е и последний ответ за 10е апреля этого года!!
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1018349645&n=1
← →
Den_ (2002-04-17 14:11) [4]> Kuusiniemi ©
Оно понятно....В этом обсуждении я не нашел нужной информации :( Все же хотелось бы так, по дубовому:
uses BDE
Table1.Close;
Table1.Exclusive := true;
dbiPackTable( Что нужно писать здесь??);
Table1.Open;
Table1.Exclusive := false;
Вот был такой пример, блин и я его записывал, но он был случайно удален. И теперь видимо не один я мучаюсь. Слышал что этот пример хорошо работает с dBase. Спасибо за ответы :)))
← →
Kuusiniemi (2002-04-17 14:23) [5]Ну вы, блин, даете. ©
Справка по BDE.
Пример:
DbiPackTable(Table1.DBHandle, Table1.Handle, nil, szDBASE, True);
← →
sniknik (2002-04-17 14:31) [6]для VFP 5.0 BDE не очень то и подходит. до foxpro 2.5 только. так что не удивляйся очень если не получится.
← →
Смолин (2002-04-17 15:37) [7]> Kuusiniemi ©
Я конечно прошу прощения за настойчивость, но записи с помощью этой функции все равно не удаляются, а только помечаются. Я правильно пишу:
Table1.Delete;
Table1.Close;
Table1.Exclusive := true;
DbiPackTable(Table1.DBHandle, Table1.Handle, nil, szDBASE, True);
Table1.Open;
Table1.Exclusive := false;
И еще вопрос: что такое nil?
← →
sniknik (2002-04-17 16:20) [8]возми полную процедуру для db и dbf
но еще раз если у тебя VFP 5.0 то это не сработает. (скорей всего)
procedure TDatMod.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;
← →
Anatoly Podgoretsky (2002-04-17 16:27) [9]Вай, ты серьезно про nil
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.05.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c