Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.04;
Скачать: CL | DM;

Вниз

Капризный Halcyon   Найти похожие ветки 

 
Trixter   (2002-06-13 10:38) [0]

Проблема:
1. Работаю с Halcyon, все хорошо, но отказывается выполнять команды Pack, Zap, Rename. Эксклюзивный доступ установлен, а он, собака, все равно его требует.
2. Выполняю команду HalcyonDataSet.Close, после чего пытаюсь работать с файлами БД как с обычными -- удалить, архивировать, разархивировать и проч. Выдается ошибка, т.к. компонент от файла, судя по всему, не отстегнулся окончательно.
Всю жизнь работаю с FoxPro, а в Delphi --такие непонятные грабли.
Кто поможет советом или лучше эффективным работающим примером?
Благодарность не будет иметь границ в пределах разумного.


 
Vovik ©   (2002-06-13 11:03) [1]

HalcyonDataSet1.TableName := "1111.dbf";
HalcyonDataSet1.Exclusive := True;
HalcyonDataSet1.Open;
HalcyonDataSet1.Pack;
HalcyonDataSet1.Close;
HalcyonDataSet1.Exclusive := False;

Все работает!!!


 
Dennn_is   (2002-06-13 11:09) [2]

"Упаковка" (физическое удаление помеченных к удалению записей) таблицы Базы Данных (проверялось только на файлах DBF)
Нужно подключить модули :
DBTables, DB, dbiProcs,DbiErrs,dbiTypes;
Здесь, если NrErr>0 , то вывод на экран сообщения об ошибке (если была ошибка).
если NrReInd>0 , то автоматический вызов функции

function TablePack(NrErr,NrReInd : byte;Tbl : TTable) : Boolean;
Var
YesEx,YesAct : byte;
S : String;
Res,Res1 : DBIResult;
CCC,TableName : array[0..255] of Char;
begin
Result:=FALSE;
YesEx:=0;
if Tbl.Exclusive then YesEx:=1;
YesAct:=0;
if Tbl.Active then YesAct:=1;
Tbl.Active:=FALSE;
Tbl.Exclusive:=TRUE;
Tbl.Active:=TRUE;
StrPCopy(TableName,Tbl.TableName);
Res:=DbiPackTable (Tbl.DBHandle,
Tbl.Handle,
TableName,
NIL{szDBASE},
TRUE);
Tbl.Active:=FALSE;
if YesEx<=0 then Tbl.Exclusive := FALSE;
if YesAct>0 then Tbl.Active:=TRUE;

if Res=0 then begin
Result:=TRUE;
if NrReInd>0 then begin
if not TableRegenIndexes(NrErr,Tbl) then Result:=FALSE;
end;
end
else begin
if NrErr>0 then begin
Res1:=DbiGetErrorString (Res,CCC);
Str(Res,S);
S:="Ошибка упаковки : "+S+" -> "+StrPAS(CCC)+" для : "+Tbl.TableName;
MessageBeep(mb_IconHand);
MessageDlg(S,mtError,[mbOk],0);
end;
end;
end;



 
VAleksey ©   (2002-06-13 15:14) [3]


> Всю жизнь работаю с FoxPro, а в Delphi --такие непонятные
> грабли.

Delphi И Foxpro - мало совместимые вещи (из опыта)



Страницы: 1 вся ветка

Текущий архив: 2002.07.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
4-10068
anod
2002-05-03 18:31
2002.07.04
Отображение файлов


3-9727
Oleg_er
2002-06-11 15:57
2002.07.04
Еще будьте добры, плиииз


6-9956
LiNkS
2002-04-22 17:44
2002.07.04
Компы в локальной сети


1-9823
kull
2002-06-24 16:30
2002.07.04
Число в строку?


3-9713
oss
2002-06-06 14:47
2002.07.04
Midas, ADO, Dinamic Query