Главная страница
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.024 c
1-1087228199
tower
2004-06-14 19:49
2004.06.27
Аналог char* в c++ для паскаля


4-1084729893
NiaSoft
2004-05-16 21:51
2004.06.27
Как сделать свою панель задач


1-1087226281
Sveta
2004-06-14 19:18
2004.06.27
RXLIB


8-1081527041
Андрей Арт
2004-04-09 20:10
2004.06.27
Звук


8-1081335124
ЁПРСТ
2004-04-07 14:52
2004.06.27
Размер картинки в TBitmap