Anlegen einer DB in Zeos
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Anlegen einer DB in Zeos
Hi,
Wollt es den Nutzern mal etwas einfacher machen und die Db anlegen wenn nicht existent.
Bekomm das aber für Firebird mit aktuellem zeos SVN nicht hin.
SQL Error: invalid database handle (no active connection). Error Code: -904. Unsuccessful execution caused by an unavailable resource. The SQL: CREATE DATABASE 'test2' USER 'SYSDBA' PASSWORD '**************' PAGE_SIZE 4096 DEFAULT CHARACTER SET UTF8;
Im Spiel ist nur eine TZConnection mit Protocol,Database,Hostname gesetzt. Und CreateNewDatabase=... in Params.
Wollt es den Nutzern mal etwas einfacher machen und die Db anlegen wenn nicht existent.
Bekomm das aber für Firebird mit aktuellem zeos SVN nicht hin.
SQL Error: invalid database handle (no active connection). Error Code: -904. Unsuccessful execution caused by an unavailable resource. The SQL: CREATE DATABASE 'test2' USER 'SYSDBA' PASSWORD '**************' PAGE_SIZE 4096 DEFAULT CHARACTER SET UTF8;
Im Spiel ist nur eine TZConnection mit Protocol,Database,Hostname gesetzt. Und CreateNewDatabase=... in Params.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 1579
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Anlegen einer DB in Zeos
Vermutlich musst Du dich mit einer System-DB verbinden, dann kannst Du den SQL Befehl für Create Databse ausführen und dann dich mit der neuen Database verbinden und die Tabellen anlegen.
Demos und nützliche Links hier:
http://www.lazarusforum.de/viewtopic.ph ... eos#p53706" onclick="window.open(this.href);return false;
Demos und nützliche Links hier:
http://www.lazarusforum.de/viewtopic.ph ... eos#p53706" onclick="window.open(this.href);return false;
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: Anlegen einer DB in Zeos
Wo siehst du in dem Post was nützlichs für mein Problem ?
Ich erinnere mich grau das irgendwo mal jemand zusamengetragen hat (warscheinlich EgonHugeist) wie man Datenbanken auf verschiedenen DB Systemen anlegt.
Ich finds nur nicht mehr und hoffe er meldet sich zu dem Thema.
Wenns jemand sonst findet oder noch weiss
Ich erinnere mich grau das irgendwo mal jemand zusamengetragen hat (warscheinlich EgonHugeist) wie man Datenbanken auf verschiedenen DB Systemen anlegt.
Ich finds nur nicht mehr und hoffe er meldet sich zu dem Thema.
Wenns jemand sonst findet oder noch weiss

W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 1579
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Anlegen einer DB in Zeos
Diese Zeile aus dem Post:
- Mit Zeos 6.6.6 konnte man eine Datenbank anlegen, mit Zeos 7 geht das auch, hier der Workaround:
http://zeos.firmos.at/viewtopic.php?t=3485" onclick="window.open(this.href);return false;
Im Link von ISM gibt es sogar ein Demo-Codeschnipsel.
Ich hatte auch mal das Problem, nur nutze ich kein Firebird. Zumindest zeit es den Lösungsweg, danach kannst Du suchen.
EgonHugeist hat jetzt keine Zeit mehr, er ist die nächsten Monate stark mit wichtigeren Dingen beschäftigt/eingebunden.
- Mit Zeos 6.6.6 konnte man eine Datenbank anlegen, mit Zeos 7 geht das auch, hier der Workaround:
http://zeos.firmos.at/viewtopic.php?t=3485" onclick="window.open(this.href);return false;
Im Link von ISM gibt es sogar ein Demo-Codeschnipsel.
Ich hatte auch mal das Problem, nur nutze ich kein Firebird. Zumindest zeit es den Lösungsweg, danach kannst Du suchen.
EgonHugeist hat jetzt keine Zeit mehr, er ist die nächsten Monate stark mit wichtigeren Dingen beschäftigt/eingebunden.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: Anlegen einer DB in Zeos
Da wars was ich gemeint hatte 
Mein Firebirs Problem war aber das ich den Server nicht angegeben hatte,
CREATE DATABASE 'Serverx:test2' USER 'SYSDBA' PASSWORD '**************' PAGE_SIZE 4096 DEFAULT CHARACTER SET UTF8;
wirft zwar eine Exception beim ersten öffnen beim 2. ist die DB dann aber tatsächlich angelegt und die Connection kann geöffnet werden

Mein Firebirs Problem war aber das ich den Server nicht angegeben hatte,
CREATE DATABASE 'Serverx:test2' USER 'SYSDBA' PASSWORD '**************' PAGE_SIZE 4096 DEFAULT CHARACTER SET UTF8;
wirft zwar eine Exception beim ersten öffnen beim 2. ist die DB dann aber tatsächlich angelegt und die Connection kann geöffnet werden
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: Anlegen einer DB in Zeos
Für Postgres gehts übrigends nicht auch nicht mit korrektem SQL
Aber man kann dort auf DB "postgres" verbinden und dann mit Connection.ExecuteDirect die DB anlegen.

W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 93
- Registriert: Di 17. Apr 2012, 22:41
Re: Anlegen einer DB in Zeos
Hi Christian,
Nun will ich dir auch noch meinen Senf dazu geben (;
Eigentlich hat Markus dir schon gezeigt, wie man sich mit den SystemDatenbanken verbindet. Leider werden diese bei FireBird erst mit anlegen der db erstellt. Somit ist das eine Sackgasse. Ich muss erstmal in den Quellen nachschauen, doch meine ich mich zu erinnern, dass es da eine TZConnection.Properties Value gibt ?CreateDataBase=True? welche dann in die Datenbank, welche du in den TZConnection props angegeben hast, anlegt. Die wirst die richtige Syntax in unit ZDbcInterbase.pas procedure xx.open finden. Schau da mal rein. Ich hab das noch nie getestet, sollte aber funktionieren. Dennoch für alle anderen unterstützen Treiber ist die Variante von Markus die sicherere.
Gruß Michael
Nun will ich dir auch noch meinen Senf dazu geben (;
Eigentlich hat Markus dir schon gezeigt, wie man sich mit den SystemDatenbanken verbindet. Leider werden diese bei FireBird erst mit anlegen der db erstellt. Somit ist das eine Sackgasse. Ich muss erstmal in den Quellen nachschauen, doch meine ich mich zu erinnern, dass es da eine TZConnection.Properties Value gibt ?CreateDataBase=True? welche dann in die Datenbank, welche du in den TZConnection props angegeben hast, anlegt. Die wirst die richtige Syntax in unit ZDbcInterbase.pas procedure xx.open finden. Schau da mal rein. Ich hab das noch nie getestet, sollte aber funktionieren. Dennoch für alle anderen unterstützen Treiber ist die Variante von Markus die sicherere.
Gruß Michael
ZeosDevTeam
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: Anlegen einer DB in Zeos
Hallo Michael,
vorab erstmal danke für deine grossartige Arbeit an Zeos.
Ich hab alles was ich an Doku und Forenbeiträgen fidnen konnte durchgeschaut. Auch aus dem Source bin ich nicht wirklich schlau geworden.
Es wär an der Stelle einfach schön wenn das irgendwo mal stehen würde
Bei Postgres hat das aber alles nicht geklappt, auch nicht mit verbinden auf "postgres". Manuell bin ich d dann aber weitergekommen.
vorab erstmal danke für deine grossartige Arbeit an Zeos.
Ich hab alles was ich an Doku und Forenbeiträgen fidnen konnte durchgeschaut. Auch aus dem Source bin ich nicht wirklich schlau geworden.
Es wär an der Stelle einfach schön wenn das irgendwo mal stehen würde

Bei Postgres hat das aber alles nicht geklappt, auch nicht mit verbinden auf "postgres". Manuell bin ich d dann aber weitergekommen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 1579
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Anlegen einer DB in Zeos
> Bei Postgres hat das aber alles nicht geklappt, auch nicht mit verbinden auf "postgres". Manuell bin ich d dann aber weitergekommen.
Bei mir hat das geklappt. Ich habe das mit Michael mal an einem langen Abend zusammen ausgeknobelt.
Kannst Du das näher beschreiben, warum es nicht ging oder was da bei Dir nötig war?
Gruß Markus
Bei mir hat das geklappt. Ich habe das mit Michael mal an einem langen Abend zusammen ausgeknobelt.
Kannst Du das näher beschreiben, warum es nicht ging oder was da bei Dir nötig war?
Gruß Markus
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: Anlegen einer DB in Zeos
Nö müsst ich erst wieder ausknobeln, hast du deine lösung noch da ? Ansonsten schau ich nochmal wies nicht funktioniert hatte
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 1579
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Anlegen einer DB in Zeos
Code: Alles auswählen
dbTest.Disconnect;
dbTest.Protocol := cboProtocol.Text;
dbTest.HostName := edHost.Text;
dbTest.Port := StrToIntDef(edPort.Text, 0);
dbTest.Database := '';
dbTest.User := edUser.Text;
dbTest.Password := edPasswort.Text;
dbTest.Database := 'postgres';
dbTest.Catalog := dbTest.Database;
q.SQL.Text := 'CREATE DATABASE ' + edDatabase.Text;
q.SQL.Add(' WITH ENCODING=''UTF8''');
q.ExecSQL;
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: Anlegen einer DB in Zeos
So mach ichs doch jetzt auch das ist doch aber nich der zeos weg
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 1579
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Anlegen einer DB in Zeos
Was wäre denn der Zeos-Weg?
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: Anlegen einer DB in Zeos
Na über createdatabase in den properties
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 93
- Registriert: Di 17. Apr 2012, 22:41
Re: Anlegen einer DB in Zeos
Hab gerade mal in die Quellen geschaut in die SIGDEV gefixt...
Richtig wär TZConnection.Properties.Values['CreateNewDatabase'] := 'CREATE DATABASE '#39+C:\MeineDB.fdb'+#39+' USERNAME = ..........
Also quasi den gesamten string zusammenbaste, welch nötig ist, um eine FireBird DB anzulegen.
Außerdem hab ich gesehen, das dieser syntax wohl für alle DBMS zur Verfügung stand, wohl aber wieder entfernt wurde. Warum, weiß ich jetzt nicht, aber es wird nix ohne guten Grund entfernt..
Christian die Exception ist gefixt: R1846 \testing
Generell wäre es toll, wenn ihr mir ne PM übers Zeos-Forum schreibt, da ich hier nur gelegentlich aus reiner Neugier rumschnüffel -> work overload
Michael
Richtig wär TZConnection.Properties.Values['CreateNewDatabase'] := 'CREATE DATABASE '#39+C:\MeineDB.fdb'+#39+' USERNAME = ..........
Also quasi den gesamten string zusammenbaste, welch nötig ist, um eine FireBird DB anzulegen.
Außerdem hab ich gesehen, das dieser syntax wohl für alle DBMS zur Verfügung stand, wohl aber wieder entfernt wurde. Warum, weiß ich jetzt nicht, aber es wird nix ohne guten Grund entfernt..
Christian die Exception ist gefixt: R1846 \testing
Generell wäre es toll, wenn ihr mir ne PM übers Zeos-Forum schreibt, da ich hier nur gelegentlich aus reiner Neugier rumschnüffel -> work overload

Michael
ZeosDevTeam