Anbindung an Ansi-C

Hallo,
ich möchte gerne über ein Ansi-C-Programm auf meine PostgreSQL-DB zugreifen, jedoch habe ich auf diesem Gebiet keinen blassen Schimmer und auf Suchmaschine Google hat irgendwie nichts wirklich hilfreiches ausgespuckt, aber…vielleicht finde ich ja hier Unterstützung :slight_smile:

moin,

hm, wieso schaust du nicht einfach in das offiziele handbuch!?

http://www.postgresql.org/docs/8.1/interactive/libpq.html

das sollte dir weiterhelfen.

cu tb.

Moin moin :slight_smile:
Jepp, das Libpqxx-Paket habe ich mir auch bereits angeschaut, aber ich komme damit absolut nicht klar…schäm

Dann schau dir am besten in $C_BUCH deiner Wahl an, wie man externe libraries verwendet.

Wenn du dich mal äusern würdest, womit du genau nicht klarkommst, könnte man vielleicht etwas genauer helfen. Ansonsten steht in der Einleitung zum libpq-Kapitel schon folgender Satz:

Some short programs are included at the end of this chapter (Section 27.16) to show how to write programs that use libpq. There are also several complete examples of libpq applications in the directory src/test/examples in the source code distribution.

Mit den Beispielen solltest du schonmal ein Stück weiterkommen.

Domski

Okay!
Also ich habe diese Datei runtergeladen (http://thaiopensource.org/download/software/libpqxx/libpqxx-2.5.5.tar.gz) in dieser BEfinden sich jedoch wohl nur die Sourcecodes und man muss sich die Lib selber kompilieren, wenn ich es so richtig verstanden habe…
Und genau da fängt es an, wo ich nichtmehr wirklich weiterkomme!

So, ein paar mehr Infos:
Ich benutze also Programmierumgebung Dev-C++ unter Windows und mit dem C-Programm möchte ich gerne auf eine PostgreSQL-Datenbank, welche auch unter Windows läuft, zugreifen.

ähm, sry aber das vertesh ich net ganz. wenn du ein programm schreiben willst programmierst du und musst doch sowieso übersetzen… also sind die sourcen doch richtig…

wieso machst du das nicht einfach so wie das immer bei c ist. die dateien ins lib verzeichnis kopieren, einfügen mit include und dann damit arbeiten…

sry versteh dein problem net…

cu tb.

Also die in dem offiziellen Handbuch erwähnte libpq-fe.h, geschweige denn die eigentliche Library ist dort garnicht vorhanden, dafür viele viele andere Dateien, mit denen ich aber so nichts anfangen kann

axo. naja dann lad dir die sourcen fomr postgresql server herunter. im verzeichnis src/interfaces/libpg findest du alle nötigen dateien inkl der von dir genannten header datei.

cu tb.

Ich kenn die Windows-Installation von Postgres nicht, aber wenn ich bei Debian das Package libpqxx-dev installiere, habe ich die Header-Files als auch die Libs ordentlich auf Platte. Hats du mal deine Installation durchsucht, ob das vielleicht schon alles hast? Dann brauchst du nur den Include-Path von deinem Compiler anpassen und das Header-File einbinden.

Domski

@Domski:
Ne, sind nicht vorhanden

@Xandrian:
Von welcher Seite? Auf der .de habe ich nichts derartiges gefunden und auf der .org-Seite werde ich bei “libpqxx” nur auf diese Seite weitergeleitet:
http://gborg.postgresql.org/project/libpqxx/projdisplay.php

also ich hab die dateien in den sourcen des postgresql servers (nicht libpg sondern server!). dort sind die dateien mit drinnen. diese sourcen bekommst du hier: http://www.postgresql.org/ftp/source/

ligpqxx ist für c++. du willst ja reines c. wenn du doch c++ willst kannst du hier die libpqxx herunterladen: http://gborg.postgresql.org/project/libpqxx/download/download.php

hier sind dann die cpp dateien für c++ drinnen.

cu tb.

Jau, super danke!
Habe mir die Header-Dateien aus dem gezipten Archiv der PostgreSQL-Binaries-ohne Installer extrahieren können

Sooo nachdem auch noch die libpq.a als Library eingebunden werden musste, stellte sich recht schnell ein erstes Erfolgserlebins anhand des Datenbank-Connects ein.

Mal so als Resonanz zu eurer Hilfe :smiley:

hi,

ich hab zwar keine ahnung von c bzw den verwendeten teiber aber las mal die " weg und versuch es noch mal.

cu tb.

Jeppjepp, habe ich vor einer Minute gesehen, daß die Gänsefüsschen ja einen String umschliessen und diese also bei Verwendung des Variableninhalts wegfallen vormkopphau g

So isses!

Glückwunsch zum Funktionieren!