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

Вниз

Ошибка "Master table is open" при копировании детальной таблицы.   Найти похожие ветки 

 
Balkon   (2004-05-31 14:32) [0]

Приветствую, Мастера! При копировании детальной таблицы с помощью DbiCopyTable возникает ошибка "Master table is open". Во время копирования MasterTable.Active = false.

Подскажите, в чем дело. (как переводится - я догадываюсь :), что нужно сделать чтобы "закрыть" мастер таблицу?)

Спасибо.


 
Romkin ©   (2004-05-31 14:39) [1]

Требуется закрыть таблицу-мастер :)))


 
Balkon   (2004-05-31 14:49) [2]

:) Спасибо.

В таком случае, глупый наверное, но вопрос:

Означает ли значение false свойства Active объекта MasterTable: TTable, связванного с мастер таблицей то, что она - master table, закрыта?


 
Romkin ©   (2004-05-31 14:57) [3]

Да, означает. Но это не означает, что эта таблица не открыта в другом месте, в другом приложении, например, в среде Delphi в режиме разработки ;)
Она должна быть закрыта везде


 
Balkon   (2004-05-31 15:41) [4]

Вроде везде уже закрыта мастер таблица - загружено только единственное (мое) тестовое приложение. Однако все таже ошибка :( Может где-то в коде кроется ошибка?:
...
MasterTable: TTable;
DetailTable: TTable;
Button_CopyTable: TButton;
...
procedure QuickCopyTable(T:TTable; DestTblName: string; Overwrite: Boolean); //Pacheco and Teixeira Book Example
var
 DBType: DBINAME;
 WasOpen: Boolean;
 NumCopied: Word;
begin
 WasOpen := T.Active;
 if not WasOpen then T.Open;
 Check(DbiGetProp(hDBIObj(T.Handle), drvDRIVERTYPE, @DBType,
   SizeOf(DBINAME), NumCopied));
 Check(DbiCopyTable(T.DBHandle, Overwrite, PChar(T.TableName), DBType,
   PChar(DestTblName)));
 T.Active := WasOpen;
end;

procedure TForm1.Button_CopyTableClick(Sender: TObject);
begin
 if MasterTable.Active then
   MasterTable.Close;
 QuickCopyTable(DetailTable, "copyOf" + DetailTable.TableName,
   true);
end;


 
Romkin ©   (2004-05-31 15:50) [5]

В справке по BDE покороче:
procedure fDbiCopyTable(hTmpDb: hDbiDb; SrcTableName: string; DestName: string);
begin
 Check(DbiCopyTable(hTmpDb, True, PChar(SrcTableName), nil, PChar(DestName)));
end;


 
Balkon   (2004-05-31 16:37) [6]

Пробывал я и  fDbiCopyTable из справки по BDE - все к одному ведет - Master Table is Open :(

В чем может быть дело? HELP!!!


 
Balkon   (2004-05-31 16:38) [7]

Пробывал я и  fDbiCopyTable из справки по BDE - все к одному ведет - Master Table is Open :(

В чем может быть дело? HELP!!!


 
Anatoly Podgoretsky ©   (2004-05-31 16:44) [8]

У тебя могут лежать компоненты на форме за ее видимыми пределами. Проверяй по dfm файлам


 
Balkon   (2004-05-31 17:00) [9]

Спасибо, проверил. Нет ничего лишнего. Более того, создал новое тестовое приложение, кинул туда две компоненты таблиц, связал их с физическими таблицами, кинул кнопку,...

procedure fDbiCopyTable(hTmpDb: hDbiDb; SrcTableName: string; DestName: string);
begin
Check(DbiCopyTable(hTmpDb, True, PChar(SrcTableName), nil, PChar(DestName)));
end;

procedure TForm1.Button_CopyClick(Sender: TObject);
begin
 DetailTable.Open;
 fDbiCopyTable(DetailTable.dbHandle,DetailTable.TableName, "copyOf" +
   DetailTable.TableName);
end;

Закрыл все программы, включая Delphi, запустил тест -  таже проблема... :) Уж простите за назойливость



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

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

Наверх




Память: 0.49 MB
Время: 0.038 c
14-1086562766
GanibalLector
2004-06-07 02:59
2004.06.27
Всего лишь 7 критических ошибок...


3-1085745467
half_litre
2004-05-28 15:57
2004.06.27
MultiThread доступ


1-1087233387
Шишкин Илья
2004-06-14 21:16
2004.06.27
Проблема с TStringList


1-1086674913
MakNik
2004-06-08 10:08
2004.06.27
Oкругление


1-1086878929
TUser
2004-06-10 18:48
2004.06.27
Тексейра