Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.07.04;
Скачать: [xml.tar.bz2];

Вниз

Капризный 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.006 c
3-9707
User_OKA
2002-06-10 15:28
2002.07.04
Задолбался с TpFIBQuery!


3-9726
Oleg_er
2002-06-11 15:09
2002.07.04
ПОдскажите пож-ста


4-10068
anod
2002-05-03 18:31
2002.07.04
Отображение файлов


1-9801
ewsd
2002-06-22 09:40
2002.07.04
подчеркивание части строки в RichEdit


14-9984
Arhangel
2002-06-01 21:29
2002.07.04
Подскажите самый простой компонент





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский