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 ?