AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi MyDac "show status" antwort abhohlen
Thema durchsuchen
Ansicht
Themen-Optionen

MyDac "show status" antwort abhohlen

Ein Thema von DelTurbo · begonnen am 4. Jan 2014 · letzter Beitrag vom 5. Jan 2014
 
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#11

AW: MyDac "show status" antwort abhohlen

  Alt 5. Jan 2014, 11:36
Mal ganz abgesehen davon, dass man solche Operationen nicht mit Komponenten (MyQuery1 , MyQuery2 ) machen sollten, die man auf eine Form klatscht ist es auch besser diese Funktionen aufzuteilen.
Delphi-Quellcode:
  procedure GetDatabaseNames( AConnection : TMyConnection; AResult : TStrings );
    var
      LQuery : TMyQuery;
      LField : TField;
    begin
      AResult.BeginUpdate;
      try

        AResult.Clear;

        LQuery := TMyQuery.Create( nil );
        try
          LQuery.SQL.Text := 'SHOW DATABASES';
          LQuery.Connection := AConnection;
          LQuery.Open;
          try
            LField := LQuery.FieldByName( 'Database' );

            while not LQuery.EOF do
              begin
                AResult.Add( LField.AsString );
                LQuery.Next;
              end;
          finally
            LQuery.Close;
          end;
        finally
          LQuery.Free;
        end;

      finally
        AResult.EndUpdate;
      end;
    end;

  procedure GetTableNames( AConnection : TMyConnection; const ADatabaseName : string; AResult : TResult );
    var
      LQuery : TMyQuery;
      LField : TField;
    begin
      AResult.BeginUpdate;
      try

        AResult.Clear;

        LQuery := TMyQuery.Create( nil );
        try
          LQuery.SQL.Text := 'SHOW TABLES FROM ' + ADatabaseName;
          LQuery.Connection := AConnection;
          LQuery.Open;
          try
            LField := LQuery.Fields.Fields[0];

            while not LQuery.EOF do
              begin
                AResult.Add( LField.AsString );
                LQuery.Next;
              end;
          finally
            LQuery.Close;
          end;
        finally
          LQuery.Free;
        end;

      finally
        AResult.EndUpdate;
      end;
    end;

  procedure GetDatabaseTableNames( AConnection : TMyConnection; AResult : TStrings );
    var
      LDatabases : TStringList;
      LDatabase : string;
      LTables : TStringList;
      LTable : string;
    begin
      LDatabases := nil;
      LTables := nil;
      AResult.BeginUpdate;
      try
        AResult.Clear;

        LDatabases := TStringList.Create;
        LTables := TStringList.Create;

        GetDatabaseNames( AConnection, LDatabases );

        for LDatabase in LDatabases do
          begin
            GetTableNames( AConnection, LDatabase, LTables );

            for LTable in LTables do
              begin
                AResult.Add( Format( '%s.%s', [LDatabase, LTable] ) );
              end;
          end;

      finally
        AResult.EndUpdate;
        LTables.Free;
        LDatabases.Free;
      end;
    end;

  procedure TForm1.Button1Click( Sender : TObject );
    begin
      GetDatabaseTableNames( MyConnection1, Memo1 );
    end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo ( 5. Jan 2014 um 11:41 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz