Thema: Delphi Die SQL-Syntax prüfen

Einzelnen Beitrag anzeigen

Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#10

Re: Die SQL-Syntax prüfen

  Alt 12. Jul 2006, 18:56
Mein Dialogfenster wird nicht zerstört. Ich habe das mal in dieser Procedure ausprobiert, nur habe ich leider im Moment keine Idee, wie ich es machen soll. Das ist meine Procedure:
Delphi-Quellcode:
procedure TSQLTalkerMain.CreateTableExecute(Sender: TObject);
var
  CreateTableMain: TCreateTableMain;
begin
  // Sollte noch kein Fenster offen sein, dann wird jetzt eines geöffnet
  SQLCommand := ZeosDataModule.ZConnection.Protocol;
  CreateTableMain := TCreateTableMain.Create(Application);
  CreateTableMain.ShowModal;
  if CreateTableMain.ModalResult = mrOK then
  begin
    // Sollte noch kein Fenster offen sein, dann wird jetzt eines geöffnet
    CreateSQLChild;
    try
      with ZeosDataModule.TempQuery do
      begin
        if ZeosDataModule.ZConnection.Protocol = 'mysqlthen
        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;
    except
      on e: Exception do
      begin
        MessageDlg('Es ist ein Fehler bei der Erstellung der Tabelle aufgetreten !!'
          + #13 + e.Message, mtError, [mbOk], 0);
        CreateTableMain.ShowModal; //<--- Dieses habe ich jetzt eingefügt.
      end;
    end;
  end; // IF-Abfrage auf's ModalResult
end;
Das eingefügte funktioniert auch wunderbar, nur wie verpacke ich das jetzt in eine Endlosschleife, dass immer wieder versucht wird die Tabelle zu erstellen oder bis ich den Button "Abbrechen" anklicke ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat