hier eine Methode, die funktioniert:
Delphi-Quellcode:
// testet, ob eine Tabelle schon in der DB vorhanden ist
// benutzt dazu Metadata
function TDbTable.ExistInDb (TableName :
String): Boolean;
var
TableFound: Boolean;
ZSQLMetadata: TZSQLMetadata;
DSSQLMetadata: TDataSource;
begin
Result := False;
ZSQLMetadata := TZSQLMetadata.Create (self);
DSSQLMetadata := TDataSource.Create (self);
ZSQLMetadata.Connection := FmyConnection;
DSSQLMetadata.DataSet := ZSQLMetadata;
// Spalten aus Tabelleninfo (Metadata) auslesen
ZSQLMetadata.MetadataType := mdTables;
ZSQLMetadata.Catalog := LowerCase (FTableDatabase);
ZSQLMetadata.Open;
TableFound := False;
while not DSSQLMetadata.DataSet.Eof
and (TableFound = FALSE)
do
begin
if LowerCase (DSSQLMetadata.DataSet.FieldByName ('
TABLE_NAME').Text) = LowerCase (TableName)
then
begin
TableFound := True;
Result := True;
end;
DSSQLMetadata.DataSet.Next;
end;
//aufräumen
ZSQLMetadata.Free;
DSSQLMetadata.Free;
end;
da dies nur ein Ausschnitt aus einem meiner Projekte ist, brauchst Du evtl. noch weitere Teile meines Projektes (z.B. TDbTable.Create). Falls ja, dann einfach per PN melden.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.