Problem bei Erstellung einer POSTGRES-DB
-
- Beiträge: 28
- Registriert: Mo 18. Sep 2006, 07:48
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Scheeßel
Problem bei Erstellung einer POSTGRES-DB
Guten Tag,
ich habe ein kleines Programm geschrieben, mit dem eine Postgres-Datenbank erzeugt und mit Vorgabewerten gefüllt wird.
Es wird die sqldb-Komponente genutzt und alles ist ok.
Jetzt kommt als weitere Aufgabe, dass ein Template als Vorlage der Datenbank verwendet werden soll.
Leider kann ich beim Aufrufruf von pqconnection1.createdb keine weiteren Parameter eingeben.
Wie würdet Ihr das lösen?
Danke für Eure Antworten.
Gruß Bernd
ich habe ein kleines Programm geschrieben, mit dem eine Postgres-Datenbank erzeugt und mit Vorgabewerten gefüllt wird.
Es wird die sqldb-Komponente genutzt und alles ist ok.
Jetzt kommt als weitere Aufgabe, dass ein Template als Vorlage der Datenbank verwendet werden soll.
Leider kann ich beim Aufrufruf von pqconnection1.createdb keine weiteren Parameter eingeben.
Wie würdet Ihr das lösen?
Danke für Eure Antworten.
Gruß Bernd
Re: Problem bei Erstellung einer POSTGRES-DB
Wäre es nicht besser, wenn du ein SQl-Skript schreibst und dieses über das Verwaltungsprogramm der Datenbank ausführst? (Bei PostgreSQL kenne ich mich nicht so aus und kann deshalb keinen Namen benennen. Bei Firebird heißt das Programm ISQL.)
knight
knight
-
- Beiträge: 28
- Registriert: Mo 18. Sep 2006, 07:48
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Scheeßel
Re: Problem bei Erstellung einer POSTGRES-DB
@knight
Guten Morgen,
danke für Deine schnelle Antwort; das SQL-Skript ist fertig, aber wir wollen die Erstellung der Postgres-Datenbank nicht den zufälligen Eingaben eines Benutzers überlassen.
Deshalb möchten wir die Datenbank per Lazarus-Programm erzeugen; leider funktioniert das nicht so, wie wir uns das vorstellten.
Freundliche Grüße aus der Lüneburger Heide
Bernd
Guten Morgen,
danke für Deine schnelle Antwort; das SQL-Skript ist fertig, aber wir wollen die Erstellung der Postgres-Datenbank nicht den zufälligen Eingaben eines Benutzers überlassen.
Deshalb möchten wir die Datenbank per Lazarus-Programm erzeugen; leider funktioniert das nicht so, wie wir uns das vorstellten.
Freundliche Grüße aus der Lüneburger Heide
Bernd
-
- 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: Problem bei Erstellung einer POSTGRES-DB
Was möchtest du denn da für parameter eingeben ?
Die Tabellen werden dann einfach per SQL create table Statement erzeugt...
Die Tabellen werden dann einfach per SQL create table Statement erzeugt...
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 131
- Registriert: Sa 5. Apr 2008, 17:57
- OS, Lazarus, FPC: Linux (Debian, Xubuntu), MacOS X, MS Win, Android, Web
- CPU-Target: 32Bit/64Bit
- Wohnort: Ulm
Re: Problem bei Erstellung einer POSTGRES-DB
Ich weiss nicht wie weit sqldb bei multiplen SQL Statements ist um diese in einem Rutsch auszuführen.
Wir arbeiten mit ZeosLib...
Aber es sollte auch gehen wenn Du - wie von Christian angedeutet - jeweils ein "create table... " statement nach dem anderen zusammenbaust und dann über ExecSQL (so heisst es bei der ZeosLib) jeweils abschickst.
Wir arbeiten mit ZeosLib...
Aber es sollte auch gehen wenn Du - wie von Christian angedeutet - jeweils ein "create table... " statement nach dem anderen zusammenbaust und dann über ExecSQL (so heisst es bei der ZeosLib) jeweils abschickst.
-
- Beiträge: 28
- Registriert: Mo 18. Sep 2006, 07:48
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Scheeßel
Re: Problem bei Erstellung einer POSTGRES-DB
Hallo,
ich glaube, wir reden aneinander vorbei
Es geht mir um die Erstellung der Datenbank; es wird nur ein CREATE DATABASE unter Verwendung zur Verfügung stehenden Parameter erledigt (Bankname, User, Port usw.).
Ich benötige aber ein 'CREATE DATABASE template=template_postgis'; in dem Template ist eine Datenbankvorlage, die unbedingt benötigt wird.
Wenn die Datenbank erstellt ist, dann kann ich sie füllen, das ist nicht das Problem und funktioniert gut.
Gruß Bernd
ich glaube, wir reden aneinander vorbei

Es geht mir um die Erstellung der Datenbank; es wird nur ein CREATE DATABASE unter Verwendung zur Verfügung stehenden Parameter erledigt (Bankname, User, Port usw.).
Ich benötige aber ein 'CREATE DATABASE template=template_postgis'; in dem Template ist eine Datenbankvorlage, die unbedingt benötigt wird.
Wenn die Datenbank erstellt ist, dann kann ich sie füllen, das ist nicht das Problem und funktioniert gut.
Gruß Bernd
Re: Problem bei Erstellung einer POSTGRES-DB
Warum soll denn die Datenbank zur Laufzeit angelegt werden? Damit handelst du dir z.B. das Problem ein, daß du prüfen mußt, ob die Datenbank nicht schon existiert. Und von SELECT Abfragen über möglicherweise (noch) nicht existierende Strukturen gar nicht zu reden. Ich würde es für sinnvoller erachten, eine leere Datenbank (mit dem Template) anzulegen und diese dann bei Bedarf von Benutzer mit Daten füllen lassen. So viel Platz nimmt eine leere (nicht verwendete) Datenbank auch nicht weg.
knight
knight
-
- 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: Problem bei Erstellung einer POSTGRES-DB
Und wie kommt die leere Datenbank auf den datenbankserver (mgl sogar im Internet) ??
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 28
- Registriert: Mo 18. Sep 2006, 07:48
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Scheeßel
Re: Problem bei Erstellung einer POSTGRES-DB
Hallo,
vielleicht sollte ich doch etwas mehr erzählen, sorry...
Wir schreiben an einem Programm, welches zur Erfassung und zur Verwaltung archäologischer Funde verwendet werden soll.
Dieses Programm soll dann irgendwann als Freeware veröffentlicht werden.
Der Benutzer muss Postgres und Postgis installieren; die Grundstruktur einschließlich diverser Vorgabewerte (z.B. Fundfarben) wird einmalig mittels eines Lazarus-Programmes erzeugt.
Da funktioniert auch super; aber bei Neuanlage muss die Postgis-Vorlagedatenbank, die beim Installieren von Postgis eingerichtet wird, als Vorgabe verwendet werden, um die Spatial-Fähigkeit der Datenbank zu gewährleisten.
Die Datenbank wird ordnungsgemäß erzeugt; nur eben die Vorlage wird nicht genutzt, da der vorgeschriebene Parameter
template = template_postgis nicht an das Lazarusprogramm über die Standardkomponente SQLDB übergeben werden kann; die Datenbank wird zunächst lokal auf dem Rechner erzeugt.
Ich hoffe doch, dass sich die Unklarheiten nicht noch vermehrt haben
Gruß Bernd
vielleicht sollte ich doch etwas mehr erzählen, sorry...
Wir schreiben an einem Programm, welches zur Erfassung und zur Verwaltung archäologischer Funde verwendet werden soll.
Dieses Programm soll dann irgendwann als Freeware veröffentlicht werden.
Der Benutzer muss Postgres und Postgis installieren; die Grundstruktur einschließlich diverser Vorgabewerte (z.B. Fundfarben) wird einmalig mittels eines Lazarus-Programmes erzeugt.
Da funktioniert auch super; aber bei Neuanlage muss die Postgis-Vorlagedatenbank, die beim Installieren von Postgis eingerichtet wird, als Vorgabe verwendet werden, um die Spatial-Fähigkeit der Datenbank zu gewährleisten.
Die Datenbank wird ordnungsgemäß erzeugt; nur eben die Vorlage wird nicht genutzt, da der vorgeschriebene Parameter
template = template_postgis nicht an das Lazarusprogramm über die Standardkomponente SQLDB übergeben werden kann; die Datenbank wird zunächst lokal auf dem Rechner erzeugt.
Ich hoffe doch, dass sich die Unklarheiten nicht noch vermehrt haben
Gruß Bernd

- af0815
- Lazarusforum e. V.
- Beiträge: 6766
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Problem bei Erstellung einer POSTGRES-DB
Kommt eine Fehlermeldung, das er eine SQL-Syntax nicht kann bzw. das Parsing fehlschlägt ?Pegasus0211 hat geschrieben:Die Datenbank wird ordnungsgemäß erzeugt; nur eben die Vorlage wird nicht genutzt, da der vorgeschriebene Parameter
template = template_postgis nicht an das Lazarusprogramm über die Standardkomponente SQLDB übergeben werden kann;
Ev. ist eine Abhilfe, das parsing ins SQLDB auszuschalten und es geht auch eingeschränkt das escapen mittels Backslash. Es war zumindest schom mal hier im Forum die Lösung für spezielle Befehle, damals im Zusammenhang mit MySQL (und einem Bugfix).
Die Frage für mich ist, was kommt bei Postgres an (erweitertes Log !?). Denn den Posts entnehme ich, das die Syntax normalerweise verarbeitet werden sollte.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).