Selbst wenn ich ein- und dieselbe TFDCustomConnection-Instanz verwende, erhalte ich regelmäßig beim Versuch die sechste von 96 Tabellen zu öffnen die oben genannte
Exception.
Delphi-Quellcode:
procedure TDbStructureExporter.SaveDatabaseDetails(
const ACatalogName: string;
const ASchemaName: string = '';
const APattern: string = '');
var
TableList: TStringList;
TableName: string;
begin
TableList := TStringList.Create;
try
FConnectionWrapper.Connecton.GetTableNames(ACatalogName, ASchemaName, APattern, TableList);
CoInitialize(nil);
for TableName in TableList do
begin
ExportTable(TableName);
end;
CoUninitialize;
finally
TableList.Free;
end;
end;
procedure TDbStructureExporter.ExportTable(const ATableName: string);
var
LTable: TFDTable;
LTableName: string;
begin
LTableName := ATableName;
LTable := TFDTable.Create(nil);
LTable.Connection := FConnectionWrapper.Connecton;
try
if LTable.Connection.Connected then
begin
LTable.Open(LTableName); // <--- hier knallts dann!
LTable.FieldDefs.Update;
if LTable.FieldDefs.Updated then
LTable.SaveToFile('C:\Temp\' + LTableName + '.xml', TFDStorageFormat.sfXML);
end;
finally
LTable.Free;
end;
end;