Seite 1 von 1
PB4.4 B2 & UsePostgreSQLDatabase()
Verfasst: 25.08.2009 10:34
von Kiffi
Hallo,
hat jemand von euch schon herausgefunden, wie man eine PostgreSQL -
Datenbank unter Verwendung des neuen UsePostgreSQLDatabase()
konnektieren kann?
Danke im voraus & Grüße ... Kiffi
Verfasst: 25.08.2009 12:28
von - chris -
Also, lokal auf einem Rechner sieht das schon mal
so aus:
Code: Alles auswählen
UsePostgreSQLDatabase()
Define SQL.s
If OpenDatabase(0, "" ,"postgres", "super")
Debug "OpenDatabase"
Debug ""
;Goto Ausgabe
t = ElapsedMilliseconds()
SQL = "BEGIN TRANSACTION"
If DatabaseUpdate(0, SQL)
Debug "BEGIN TRANSACTION"
EndIf
For n = 1 To 10000
val1 = Random(9999)
val2 = Random(9999)
val3 = Random(9999)
SQL = "INSERT INTO postgres.public.werte VALUES ("+Str(val1)+", "+Str(val2)+", "+Str(val3)+");"
If DatabaseUpdate(0, SQL)
;Debug "INSERT INTO"
EndIf
Next n
SQL = "COMMIT"
If DatabaseUpdate(0, SQL)
Debug "COMMIT"
EndIf
t1 = ElapsedMilliseconds() - t
Debug "Zeit: " + Str(t1) + "ms"
Ausgabe:
SQL = "SELECT COUNT(*) FROM postgres.public.werte"
If DatabaseQuery(0, SQL)
Debug "SELECT COUNT(*)"
col = DatabaseColumns(0)
Debug col
While NextDatabaseRow(0)
zeile$ = ""
For n = 0 To col-1
spalte$ = GetDatabaseString(0, n)
zeile$ = zeile$ + spalte$
If n < col-1
zeile$ = zeile$ + ";"
EndIf
Next n
Debug zeile$
Wend
Debug ""
EndIf
SQL = "SELECT * FROM postgres.public.werte"
If DatabaseQuery(0, SQL)
Debug "SELECT * FROM"
col = DatabaseColumns(0)
Debug col
zeile$ = ""
For n = 0 To col-1
name$ = DatabaseColumnName(0, n)
zeile$ = zeile$ + name$
If n < col-1
zeile$ = zeile$ + ";"
EndIf
Next
Debug zeile$
t = ElapsedMilliseconds()
While NextDatabaseRow(0)
zeile$ = ""
For n = 0 To col-1
spalte$ = GetDatabaseString(0, n)
zeile$ = zeile$ + spalte$
If n < col-1
zeile$ = zeile$ + ";"
EndIf
Next n
;Debug zeile$
Wend
t1 = ElapsedMilliseconds() - t
Debug "Zeit: " + Str(t1) + "ms"
EndIf
CloseDatabase(0)
Else
Debug DatabaseError()
EndIf
Verfasst: 25.08.2009 12:35
von Kiffi
Hallo - chris -,
ah! Das fehlte mir. Quasi ein Namespace für die Tabellen.
OK, danke für den Tipp!
Grüße ... Kiffi
Verfasst: 25.08.2009 13:36
von - chris -
Im Netzwerk sieht es dann so aus:
Code: Alles auswählen
UsePostgreSQLDatabase()
Define SQL.s
If OpenDatabase(0, "host=192.168.1.88 dbname=postgres" ,"postgres", "super")
Debug "OpenDatabase"
Debug ""
SQL = "SELECT COUNT(*) FROM public.werte"
If DatabaseQuery(0, SQL)
Debug "SELECT COUNT(*)"
col = DatabaseColumns(0)
Debug col
While NextDatabaseRow(0)
zeile$ = ""
For n = 0 To col-1
spalte$ = GetDatabaseString(0, n)
zeile$ = zeile$ + spalte$
If n < col-1
zeile$ = zeile$ + ";"
EndIf
Next n
Debug zeile$
Wend
Debug ""
EndIf
SQL = "SELECT * FROM public.werte"
If DatabaseQuery(0, SQL)
Debug "SELECT * FROM"
col = DatabaseColumns(0)
Debug col
zeile$ = ""
For n = 0 To col-1
name$ = DatabaseColumnName(0, n)
zeile$ = zeile$ + name$
If n < col-1
zeile$ = zeile$ + ";"
EndIf
Next
Debug zeile$
t = ElapsedMilliseconds()
While NextDatabaseRow(0)
zeile$ = ""
For n = 0 To col-1
spalte$ = GetDatabaseString(0, n)
zeile$ = zeile$ + spalte$
If n < col-1
zeile$ = zeile$ + ";"
EndIf
Next n
;Debug zeile$
Wend
t1 = ElapsedMilliseconds() - t
Debug "Zeit: " + Str(t1) + "ms"
EndIf
CloseDatabase(0)
Else
Debug DatabaseError()
EndIf
Verfasst: 25.08.2009 14:19
von Kiffi
- chris - hat geschrieben:Im Netzwerk sieht es dann so aus:
Code: Alles auswählen
If OpenDatabase(0, "host=192.168.1.88 dbname=postgres" ,"postgres", "super")
Gut! Ich habe noch herausgefunden, dass man auch den Port angeben kann.
Code: Alles auswählen
If OpenDatabase(0, "host=192.168.1.88 port=5432 dbname=postgres" ,"postgres", "super")
Nochmals Danke & Grüße ... Kiffi
Verfasst: 31.08.2009 12:41
von mk-soft
Bei kommt eine Fehlermeldung. Muss ich erst den Datenbanktreiber installieren oder ist es wie bei SQLite?
could not connect to server: Connection refused (0x0000274D/10061)
Is the server running on host "???" and accepting
TCP/IP connections on port 5432?
OS = Windows XP Home

Verfasst: 31.08.2009 12:53
von Kiffi
mk-soft hat geschrieben:Muss ich erst den Datenbanktreiber installieren oder ist es wie bei SQLite?
Der PostgreSQL-Server muss hierfür installiert und gestartet sein ->
http://www.postgresql.de/
Grüße ... Kiffi
Verfasst: 31.08.2009 14:13
von mk-soft
Danke

Verfasst: 31.08.2009 15:56
von ts-soft
Irgendwie gibts da immer Probleme bei der Installation unter Windows.
Kann da mal jemand ein paar Tipps geben, das der Service auch startet
usw., bzw. welche Version, die Normale oder die Enterprise wäre hilfreich?
Irgendwie krieg ich hier nur Kuddelmuddel und bei der Enterpriseversion
sogar einen Anmeldebildschirm den ich garnicht so sehr liebe.
Hoffe mal da kann jemand Tipps geben.
Gruß
Thomas
Verfasst: 31.08.2009 16:47
von Kiffi
ts-soft hat geschrieben:welche Version, die Normale oder die Enterprise
Enterprise? Finde ich gar nicht. Ich habe wahrscheinlich die 'normale' unter
http://www.postgresql.org/download/ heruntergeladen und installiert.
Beim Stöbern in diversen Foren habe ich gelesen, dass es zuweilen
Probleme beim Starten des Services gibt. Da scheint es um die
Berechtigungen des Users 'postgres' zu gehen. Wenn man das lokale
Systemkonto nimmt, gibt es wohl keine Probleme:
Systemsteuerung -> Verwaltung -> Dienste -> PostgreSQL Server 8.4 -> Eigenschaften -> Anmelden
Grüße ... Kiffi