Einzelnen Beitrag anzeigen

wendelin

Registriert seit: 29. Dez 2010
Ort: Nürnberg
126 Beiträge
 
Delphi 7 Enterprise
 
#1

Interbase SQL-Dialect 1/3 - Problem

  Alt 18. Dez 2013, 01:22
Datenbank: Interbase • Version: 6 • Zugriff über: SQL
Hallo,
Ich lege eine neue Datenbank nicht mit der IBConsole oder mit Script's sondern ausschliesslich aus Delphi heraus an. Ebenso ALLE Tabellen.

Siehe Quellcode:
Delphi-Quellcode:

(*  DataBase + Tables anlegen DataBase + Tables anlegen *)
          (*  TEIL1 --- TEIL1 --- TEIL1  *)
(******************************************************************************)
 procedure TForm3.SpeedButton9Click(Sender: TObject);
(******************************************************************************)
VAR DBPath : STRING;
const
  cCreateTxt = ' %d. Versuch: Datenbank wird erstellt...';
  cReadyTxt = 'Datenbank wurde erstellt!';
begin
  If not FileExists(g_DBPfad + '\My_IB_DB.gdb') then
  begin
    DBPath := g_DBPfad + '\My_IB_DB.gdb';
    EditDBPath.Text := DBPath;
    EditDBPath.Refresh;
    Screen.Cursor := crHourGlass;
    If DataModule2.IBD.LoginPrompt = TRUE THEN DataModule2.IBD.LoginPrompt := FALSE;
    IF DataModule2.IBD.Connected = TRUE THEN DataModule2.IBD.Connected := FALSE;
    DataModule2.IBD.Params.Clear;
    try
      try
        StatusBar.SimpleText := Format(cCreateTxt, [1]);
        StatusBar.Refresh;
        with DataModule2.IBD do
        begin
          DatabaseName := EditDBPath.Text;
          Params.Add(Format('USER "%s"', [EditUserName.Text]));
          Params.Add(Format('PASSWORD "%s"', [EditPassword.Text]));
   --> SQLDialect:=1; // (3 ?)geht nicht mit
          Params.Add('PAGE_SIZE 4096'); // SQLDialect'3'-->
          Params.Add('DEFAULT CHARACTER SET ISO8859_1'); // wahrscheinlich wegen
          CreateDatabase; // Double-Quotes o.ä!!
        end;
        StatusBar.SimpleText := cReadyTxt;
        Tables_anlegen; // Tabellen werden angelegt
        SpeedButton9.Enabled := False;
        except
        on E:EDatabaseError do
        begin
          MessageBeep(MB_ICONEXCLAMATION);
          MessageDlg(E.Message, mtError, [mbOk], 0);
        end;
      end;
      finally
      Screen.Cursor := crDefault;
    end;
  end ELSE ShowMessage(' Die Datenbank existiert schon !');
end;
Meine Frage : Warum funktioniert nur die Anlage der IBDB im SQL-Dialect 1, aber nicht in Dialect 3?
In (Tedit)[EditUserName.Text] steht SYSDBA; in (Tedit)[EditPassword.Text] masterkey (Property PasswordChar '*********'. Auch wenn ich die Zeile (mit Pfeil) komplett heraus nehme und im Object-Inspector SQL-Dialect auf '3' setzte kommt die RunTime-Fehlermeldung : token unknown line 1 char 94
"SYSDBA".

-----------------------------------------------------------------------------------------------

Ferner habe ich noch eine allgemeine Frage: Wie kann ich meine Beiträge (Fragen) als "Erledigt"
kennzeichnen ?
Wolfgang
  Mit Zitat antworten Zitat