AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Delphi 7 (aufwärts) auf PostgreSQL, nur wie?
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi 7 (aufwärts) auf PostgreSQL, nur wie?

Ein Thema von MatthiasR · begonnen am 13. Feb 2009 · letzter Beitrag vom 12. Mai 2018
Antwort Antwort
MatthiasR

Registriert seit: 21. Apr 2005
193 Beiträge
 
#1

Delphi 7 (aufwärts) auf PostgreSQL, nur wie?

  Alt 13. Feb 2009, 09:35
Datenbank: Pervasive SQL • Zugriff über: proprietäre Lösung
Ich beschäftige mich gerade seit langer Zeit mal wieder mit dem Thema Datenbanken, weil wir gerne von unserer bisherigen Datenbank (Pervasive SQL), die wir auf eine äusserst altmodische und proprietäre Art und Weise ansteuern (nix mit SQL ) auf etwas Zeitgemäßes umsteigen wollen, u.a. auch aus lizenztechnischen Gründen. Mittlerweile bin ich ein wenig bei PostgreSQL hängen geblieben als möglichen Kandidaten, eben wegen der Lizenz, aber auch weil das Teil von der Community gepflegt wird und keine große Firma dahinter steht, die sich mal einfach so dagegen entscheiden könnte, das Ding weiter zu entwickeln.

Nun stellt sich für mich die Frage: wenn es denn PostgreSQL werden soll (was hier gerne noch diskutiert werden darf), wie greift man am besten/einfachsten/schnellsten drauf zu? Wege gibt es sicherlich viele...

Vor einiger Zeit habe ich mal ein wenig mit dem PgOleDb-Treiber rumgespielt, den man über den Application Stack Builder von PostgreSQL herunterladen kann, und dann mittels den Delphi-eigenen ADO-Komponenten darauf zugegriffen. Aber da der Treiber seit April 2006 scheinbar nicht mehr weiterentwickelt wurde, weiß ich nicht, ob das eine so ratsame Kombination ist.

Alternativ gäbe es noch diese ZEOS-Library, die ich nun mal etwas unter die Lupe nehmen werde. Die scheint auch ständig weiterentwickelt zu werden und soll auch in der kommenden Version 7 alle Delphi IDEs ab Delphi 7 aufwärts unterstützen. Wir entwickeln aktuell noch mit Delphi 7 (und das bleibt sicher auch noch ein Weilchen so), also würde das ja passen.

Welche Wege gäbe es denn noch? Welche wären besonders empfehlenswert und aus welchen Gründen? Oder ist die Kombination aus PostgreSQL und Delphi doch nicht so der Burner, egal wie man es angeht? Und wie schaut es allgemein mit ADO und den Delphi-eigenen ADO-Komponenten aus? Ist das noch State of the Art? dbexpress ist ja glaube ich derzeit der von Codegear propagierte Weg, wie schaut es damit aus?

ich bin für jegliche Tipps dankbar !
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Delphi 7 (aufwärts) auf PostgreSQL, nur wie?

  Alt 13. Feb 2009, 09:42
Schau dir malSQLDirect an.

Ich würde eine Bridge-Pattern aufsetzen um in Zukunft mehrere SQL-Datenbanken unterstützten zu können.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Zoot

Registriert seit: 30. Jan 2006
Ort: Hessen
113 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Delphi 7 (aufwärts) auf PostgreSQL, nur wie?

  Alt 13. Feb 2009, 09:50
Also wir arbeiten unter Delphi 2006/2007 mit Zeoslib und sind damit sehr zufrieden.

Unsere Datenbanktechnischen Probleme sitzen ausschließlich vor dem Rechner....
  Mit Zitat antworten Zitat
MatthiasR

Registriert seit: 21. Apr 2005
193 Beiträge
 
#4

Re: Delphi 7 (aufwärts) auf PostgreSQL, nur wie?

  Alt 17. Feb 2009, 09:39
Also, ich habe mir nun als Einstieg mal diese Zeos-Komponenten heruntergeladen und installiert und in den letzten Tagen etwas mit ihnen in Verbindung mit einem PostgreSQL-Server herumgespielt. Mein bisheriger (oberflächlicher) Eindruck ist eigentlich ganz gut. Was mir aber aufgefallen ist: wenn ich den Datentyp "text" in einer Tabelle verwende um Strings beliebiger Länge zu speichern, bekomme ich in meinem DBGrid immer nur das Wort "(Memo)" angezeigt, statt des richtigen Feldinhalts. Wenn ich das Feld als varchar definiere, wobei ich da dann ein oberes Limit angeben muss, klappt es. Woran liegt das? Kommt das Delphi-DBGrid nicht mit dem Datentyp "text" klar?

Noch 1-2 andere Fragen, die ausschließlich PostgreSQL betreffen, für diejenigen, die damit etwas Erfahrung haben:

Bei der Installation des Servers muss man ja immer ein Daten-Verzeichnis angeben, unterhalb dessen eben die Daten abgelegt werden. Standardmäßig sind das ja relativ kryptische Dateien, aus denen sich nicht unbedingt auf einzelne Datenbanken oder Tabellen schließen lässt. Bei einer Datensicherung muss man also immer das komplette data-Verzeichnis sichern, auch wenn z.B. 90% des Datenvolumens gar nicht "sichernswert" wäre, weil es sich um statische Daten handelt, die man sich jederzeit neu erzeugen könnte.

Bisher wurde bei unserer Datenbank immer für jede Tabelle eine Datei angelegt, die in sich auch konsistent war und alle Informationen beinhaltet hat, die man brauchte. D.h. dass wir bei einem Update einfach eine bestimmte Datei durch eine aktuellere Version ersetzen konnten und schon war die Tabelle aktualisiert. Außerdem konnten wir uns bei der Datensicherung auf einzelne Tabellen beschränken, die eben sichernswert waren. Geht so etwas auch unter PostgreSQL (oder jedem anderen DBMS, das ähnlich arbeitet)? Wenn nein, was wäre ein praktikabler Workaround? Wie wird so etwas "heutzutage" gehandhabt?

Vielen Dank für eure Tipps!!!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Delphi 7 (aufwärts) auf PostgreSQL, nur wie?

  Alt 17. Feb 2009, 09:43
Zitat von Infect:
... wenn ich den Datentyp "text" in einer Tabelle verwende um Strings beliebiger Länge zu speichern, bekomme ich in meinem DBGrid immer nur das Wort "(Memo)" angezeigt, statt des richtigen Feldinhalts. Wenn ich das Feld als varchar definiere, wobei ich da dann ein oberes Limit angeben muss, klappt es. Woran liegt das? Kommt das Delphi-DBGrid nicht mit dem Datentyp "text" klar?
Es könnte - wenn man wollte. Jedoch würdest du katastrophale Performance im Grid haben wenn diese Memos/text-Feld einen großen Inhalt haben (z.b. jeweils 5 MB Text).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
MatthiasR

Registriert seit: 21. Apr 2005
193 Beiträge
 
#6

Re: Delphi 7 (aufwärts) auf PostgreSQL, nur wie?

  Alt 17. Feb 2009, 10:21
OK, Inhalte dieser Größe kann man ohnehin nicht in einem Grid veranschaulichen. War auch mehr eine Interessensfrage, weil mir das aufgefallen ist. Primär würden wir in solchen Feldern bspw. irgendwelche XML-Konstrukte ablegen wollen, und die will sich ja kein Normalsterblicher in einem DBGrid anzeigen lassen, geschweige denn sie editieren.
  Mit Zitat antworten Zitat
MatthiasR

Registriert seit: 21. Apr 2005
193 Beiträge
 
#7

Re: Delphi 7 (aufwärts) auf PostgreSQL, nur wie?

  Alt 25. Feb 2009, 11:12
An folgendem Problem beiße ich mir gerade etwas die Zähne aus, vielleicht weiß einer von euch, warum:

Ich initialisiere mein DBConnection-Objekt (ZConnection aus der ZEOSLib) mit passenden Werten für HostName (= DB-Server), Port, Protocol (hier "postgresql-8"), User und Password. Nur die property "Database" lasse ich leer, da ich mich zunächst einmal nicht auf eine gewisse Datenbank verbinden will. Diese soll mittels "CREATE DATABASE" erst noch angelegt werden. Wenn ich nun aber Connection.Connect aufrufe, bekomme ich folgende Exception "SQL Fehler: FATAL: password authentication failed for user "SystemUser" ". Wobei bei "SystemUser" mein lokaler Username, mit dem ich mich am Rechner anmelde, drinsteht. Der User, den ich unter Connection.User angegeben habe, lautet jedoch "postgres".

Setze ich nun Connection.Database vorher z.B. auf "postgres", der Postgres-internen Systemdatenbank, so kann ich mich verbinden. Aber das kann ja wohl nicht des Rätsels Lösung sein, man muss sich doch auch irgendwie mit dem Server verbinden können, ohne bereits eine Datenbank anzugeben, mit der man sich verbinden will, oder? Oder muss ich mich wirklich zuerst mit der "postgres"-Datenbank verbinden, meine eigene Datenbank anlegen, mich wieder disconnecten und anschließend erneut auf die nun existente richtige Datenbank verbinden, um mit der arbeiten zu können???
  Mit Zitat antworten Zitat
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
379 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: Re: Delphi 7 (aufwärts) auf PostgreSQL, nur wie?

  Alt 12. Mai 2018, 12:17
Ok, der Thread ist schon ein wenig älter... Aber hast Du die Komponenten mal getestet?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz