PostgreSql

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Stefan Ahrens
Beiträge: 12
Registriert: Sa 17. Jan 2009, 14:19

Re: PostgreSql

Beitrag von Stefan Ahrens »

Moin Moin,

Danke für deine Hilfe.

Das True bleibt soweit bestehen :) Habe auch schon etwas rumprobiert... nur leider scheinen die Änderungen, egal wie ich sie mache, nicht in der Datenbank anzukommen :)

Also wäre cool, wenn du dein Step by Step Tutorial weiter fortfühst :)

MfG

Alfred
Beiträge: 101
Registriert: Do 22. Nov 2007, 20:06
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: München

Q

Beitrag von Alfred »

Hallo Stefan,

das ist schon mal die halbe Miete :) . Das hat mich ein paar graue Haare gekostet.
Der Vorteil ist, dass geht mit Firebird und MySQL genauso. Auch verhalten sich andere
Komponenten, wie z.B. Zeos ähnlich.

Damit die Daten in der Datenbank bleiben ist noch einiges zu tun.

Step 2:

In SQLdb die TSQLTransaction(SQL mit dem Blitz) auf das Formular ziehen.

In der TSQLTransaction auf Database gehen und das rechte Feld anklicken, PQConnection auswählen.

Active auf True setzen und wenn es True bleibt wieder melden.

Gruß
Alfred

Stefan Ahrens
Beiträge: 12
Registriert: Sa 17. Jan 2009, 14:19

Re: PostgreSql

Beitrag von Stefan Ahrens »

Moin Moin,

Da ich als Student nur nebenbei dort in der Firma arbeite, kann ich diesen Schritt expliziet erst am Samstag wieder testen.

Mir war aber so, dass dies auch geklappt hat.
Falls du Step 3 nochmal profilaktisch hinschreiben könntest, bzw noch ein zwei fallen erläutern kannst, dann werde ich Samstag weiter versuchen die DB zu füllen :)

Aufjedenfall schonmal danke für meine Erleuchtung :)

MfG

Alfred
Beiträge: 101
Registriert: Do 22. Nov 2007, 20:06
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: München

Re: PostgreSql

Beitrag von Alfred »

Hallo Stefan,

dann zunächstes erst ein Tipp:

In der Datenbank sollest Du der Tabelle einen Primarykey(Inhalt darf nur einmal vorkommen) verpassen. Sollte
sich keines der Felder anbieten, dann ein zusätzliches Feld anlegen. Ich verwende dafür "LFDNR". In PGAdmin die
Daten pflegen und dann das Feld mit "Nicht Null" kennzeichnen. Danach in Constraints das Feld als Primary anlegen.

Gruß
Alfred

Hitman
Beiträge: 512
Registriert: Mo 25. Aug 2008, 18:17
OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1
CPU-Target: x86
Wohnort: Chemnitz

Re: L

Beitrag von Hitman »

Alfred hat geschrieben:1) Beim Upgrade von meinem Serverbetriebssystem Fedora 6 auf 8 wurde ohne Nachfrage PostgreSQL
upgegraded, was zur Folge hatte, dass ich nicht mehr auf meine Testdatenbank zugreifen konnte.

2) Viel gravierender ist jedoch, dass PostgreSQL regelmäßig upgegraded wird und jeder Wechsel von
z.B. 8.X auf 8.Y folgendes vorausetzt: Es müssen beide Versionen gleichzeitig auf dem Server laufen,
damit die Daten entladen und in die neue Version eingespielt werden können. Ich habe es bis heute
unter Fedora nicht geschafft, dass beide Versionen parallel laufen.
Das stimmt so nicht bzw. wird in der Doku ausreichend erläutert. Vor einem Upgrade wird empfohlen die Datenbank komplett zu dumpen (frag mich jetzt nich mit welchem Command, aber sonderlich kompliziert war es nicht) und nach dem Upgrade den Dump wieder einzuspielen.
Zugegeben: es ist mehr Aufwand als ein einfaches Update/Upgrade, aber jetzt auch nicht SO kompliziert. Nichts, was ein SysAdmin (und vor allem DBAdmin) nicht hinkriegen sollte. Soviel Verantwortung muss man bei System Updates/Upgrades dann eben mitbringen, und nicht einfach die Distribution um ein paar Versionen anheben, ohne sich mit den Konsequenzen vertraut zu machen.

Stefan Ahrens
Beiträge: 12
Registriert: Sa 17. Jan 2009, 14:19

Re: PostgreSql

Beitrag von Stefan Ahrens »

THX, Alfred .

Also über PGAdmin habe ich Datenbanken und PrimäryKeys etc eingerichtet. Mit den Grundlegenden Konzepten und Notwendigkeiten von Datenbanken binich vertraut, dank des Studiums ;)

Mit gehts wirklich rein um die implemenation in delphi bzw latarus :)

Danke

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: PostgreSql

Beitrag von monta »

Hast du schon SQL-Statements an die DB geschickt?

SQL in die TQuery packen und ExecSQL. und anschließend ein Commit, damit die Änderungen übernohmen werden.
Johannes

Alfred
Beiträge: 101
Registriert: Do 22. Nov 2007, 20:06
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: München

Re: PostgreSql

Beitrag von Alfred »

Hallo Hitman,

Hitman hat geschrieben: Das stimmt so nicht
Herr Andreas Kretschmer hat im PostgreSQL-Forum auf meine Frage zu dem Upgrade von 8.2 nach 8.3 folgendes
ausgeführt.
Fakt ist, Du wirst einen Dump der alten Version machen müssen (idealerweise mit den Tools der neueren Version, wobei die alte Version die Daten liefert) und diesen Dump in die neue Version einspielen. Man kann dazu beide Version auch auf demselben Rechner laufen lassen, Debian macht das so z.B.

Wie das konkret bei Fedora vorgesehen ist, weiß ich aber nicht.
In der Maillingliste von PostgreSQL wurde dies ebenfalls für einen anderen Teilnehmer so ausgeführt.

Deine Ausführungen stimmen nur für 8.3.X nach 8.3.Y.
nicht SO kompliziert.
Spätestens wenn die Datenbank im Echtzeitbetrieb 24 Stunden laufen muss, wirst Du die Aufsätze
zu diesem Thema mit anderen Augen sehen.

http://www.pro-linux.de/berichte/postgr ... chern.html
nicht einfach die Distribution um ein paar Versionen anheben, ohne sich mit den Konsequenzen vertraut zu machen.
Wenn ein Betriebssystem hochgezogen wird, kommt man als Windowsanwender wirklich nicht auf die
Idee, das ein Anwendungsprogramm mit hochgezogen wird. Die Anwendungsprogramme die ich bislang
beruflich einsetze, ändern bei einem Upgrade von sich aus die Datenbasis, wenn dies denn erforderlich
ist.

Wenn man PostgreSQL manuell in einem eigenen Verzeichnis installiert, wird es unter Fedora ja ebenfalls nicht
hochgezogen.

Gruß
Alfred

Stefan Ahrens
Beiträge: 12
Registriert: Sa 17. Jan 2009, 14:19

Re: PostgreSql

Beitrag von Stefan Ahrens »

Hey Monta,

COMMIT ist das Stichwort. Denke das das gefehlt hat ;)

Freu mich auf Samstag, da werd ichs testen. Vorher noch ne Klausur bestehen. THX

MfG

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: PostgreSql

Beitrag von monta »

Bzw. CommitRetainb, um die Verbindung aufrecht zu erhalten...musst halt sehen.
Bzw. besteht auch die Möglichkeit eines AutoCommits. Ich mag es allerdings persönlich lieber, das Commit bewusst zu setzen.

Was schreibst du denn?
Johannes

Hitman
Beiträge: 512
Registriert: Mo 25. Aug 2008, 18:17
OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1
CPU-Target: x86
Wohnort: Chemnitz

Re: PostgreSql

Beitrag von Hitman »

Alfred hat geschrieben:
Fakt ist, Du wirst einen Dump der alten Version machen müssen (idealerweise mit den Tools der neueren Version, wobei die alte Version die Daten liefert) und diesen Dump in die neue Version einspielen. Man kann dazu beide Version auch auf demselben Rechner laufen lassen, Debian macht das so z.B.

Wie das konkret bei Fedora vorgesehen ist, weiß ich aber nicht.
Damit bestätigt er doch ziemlich genau das, was ich sagte. Beachte seine Wortwahl ... "idealerweise mit den Tools der neueren Version" sowie "Man kann dazu beide Versionen auf demselben Rechner laufen lassen".
Alfred hat geschrieben: Deine Ausführungen stimmen nur für 8.3.X nach 8.3.Y.
Im Gegenteil. Wie du hier siehst, ist gerade bei 8.3.X auf 8.3.Y kein Backup nötig.
Alfred hat geschrieben: Wenn ein Betriebssystem hochgezogen wird, kommt man als Windowsanwender wirklich nicht auf die
Idee, das ein Anwendungsprogramm mit hochgezogen wird. Die Anwendungsprogramme die ich bislang
beruflich einsetze, ändern bei einem Upgrade von sich aus die Datenbasis, wenn dies denn erforderlich
ist.

Wenn man PostgreSQL manuell in einem eigenen Verzeichnis installiert, wird es unter Fedora ja ebenfalls nicht
hochgezogen.
Äpfel --> Birnen .... wie du selbst sagst: wenn du PostgreSQL selbst installierst, wird es auch bei einem Distributionsupgrade nicht mit beeinflusst. Lässt du es durch die Distribution (bzw. deren Packetmanager) verwalten, ist es ja auch kein Wunder, wenn es betroffen ist. Nach einem Upgrade von XP auf Vista wirst du ebenso neue Versionen von MS Paint, Word, Notepad etc. haben.

Stefan Ahrens
Beiträge: 12
Registriert: Sa 17. Jan 2009, 14:19

Re: PostgreSql

Beitrag von Stefan Ahrens »

monta hat geschrieben: Bzw. CommitRetainb, um die Verbindung aufrecht zu erhalten...musst halt sehen.
Bzw. besteht auch die Möglichkeit eines AutoCommits. Ich mag es allerdings persönlich lieber, das Commit bewusst zu setzen.

Was schreibst du denn?
Wie oben schon geschrieben, werde ich erstmal versuchen generell mich mit Datenbanken in Delphi / Lazarus vertraut zu machen.

Noch weitentferntes Ziel soll im ersten Schritt ein Zeiterfassungstool und am Ende ein Managementtool für Projekte werden... aber es gibt Licht am Ende des Tunnels ;)

Also ich werde den Tipp mit dem Commit mal wieder nachverfolgen.

Antworten