Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Die SQL-Syntax prüfen (https://www.delphipraxis.net/73107-die-sql-syntax-pruefen.html)

dataspider 13. Jul 2006 14:13

Re: Die SQL-Syntax prüfen
 
Hi,

Delphi-Quellcode:
  while (CreateTableMain.ModalResult = mrOK) do
  begin
    // Sollte noch kein Fenster offen sein, dann wird jetzt eines geöffnet
    CreateSQLChild;
    try
      with ZeosDataModule.TempQuery do
      begin
        if ZeosDataModule.ZConnection.Protocol = 'mysql' then
        begin
          SQL.Clear;
          SQL.Add(SQLCommand);
          MainEdit.SynEditMemo.Lines.Clear;
          MainEdit.SynEditMemo.Lines.Text := ZeosDataModule.TempQuery.SQL.Text;
          ExecSQL;
          ListViewTables.Items.Clear;
          SQL.Clear;
          SQL.Add('SHOW TABLES FROM ' + Copy(TreeViewDatabase.Selected.Text, 0,
            posn('(', TreeViewDatabase.Selected.Text, 1) - 2) + ';');
          Open;
          Active := true;
          while not EOF do
          begin
            ListViewTables.Items.Add(Fields[0].AsString);
            next;
          end;
          Active := False;
          TreeViewDatabaseClick(Sender);
        end;
      end;
      // Abbruch, wenn kein Fehler
      Break;
    except
      on e: Exception do
      begin
        MessageDlg('Es ist ein Fehler bei der Erstellung der Tabelle aufgetreten !!'
          + #13 + e.Message, mtError, [mbOk], 0);
      end;
    end;
  end; // IF-Abfrage auf's ModalResult
  // Break landet hier
Habs nicht geprüft, solte aber gehen. Kannst ja beim Dialog nach dem Except noch eine If Abfrage (noch mal versuchen) mit einem Break einbauen.

Cu, Frank

RWarnecke 13. Jul 2006 20:42

Re: Die SQL-Syntax prüfen
 
Bei dieser Variante, wird immmer meine Fehlermeldung in einer Endlosschleife angezeigt.

dataspider 14. Jul 2006 10:08

Re: Die SQL-Syntax prüfen
 
Zitat:

Zitat von RWarnecke
Bei dieser Variante, wird immmer meine Fehlermeldung in einer Endlosschleife angezeigt.

Bei mir funktioniert es. Ich habe mal ein Beispiel gemacht. Bei der Fehlermeldung kannst du noch entscheiden, ob das Formular noch mal gestartet wird.

beispiel

Vielleicht entdeckst du ja den Unterschied.

Cu, Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:26 Uhr.
Seite 2 von 2     12   

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