![]() |
Datenbank: Pervasive SQL • Zugriff über: proprietäre Lösung
Delphi 7 (aufwärts) auf PostgreSQL, nur wie?
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 :shock: ) 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 :thumb: ! |
Re: Delphi 7 (aufwärts) auf PostgreSQL, nur wie?
Schau dir mal
![]() Ich würde eine Bridge-Pattern aufsetzen um in Zukunft mehrere SQL-Datenbanken unterstützten zu können. |
Re: Delphi 7 (aufwärts) auf PostgreSQL, nur wie?
Also wir arbeiten unter Delphi 2006/2007 mit Zeoslib und sind damit sehr zufrieden.
Unsere Datenbanktechnischen Probleme sitzen ausschließlich vor dem Rechner.... |
Re: Delphi 7 (aufwärts) auf PostgreSQL, nur wie?
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!!! |
Re: Delphi 7 (aufwärts) auf PostgreSQL, nur wie?
Zitat:
|
Re: Delphi 7 (aufwärts) auf PostgreSQL, nur wie?
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.
|
Re: Delphi 7 (aufwärts) auf PostgreSQL, nur wie?
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??? |
AW: Re: Delphi 7 (aufwärts) auf PostgreSQL, nur wie?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz