Текущий архив: 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.46 MB
Время: 0.039 c