psql ohne PostgreSQL verwenden ???

Hallo alle zusammen,

Ich habe ein großes Problem!
Ich habe ein kleines Programm geschrieben (mit Visual Basic), welches aus einer Shape-Datei eine Datenbank-Tabelle erstellt. Im Grunde ist es eine grafische Oberfläche die DOS-Fenster öffnet, in denen die Befehle “shp2pgsql” und “psql” ausgeführt werden.
Dieses Tool soll anderen Leuten im Intranet zur Verfügung gestellt werden, die nicht PostgreSQL installiert haben. Die Dateien “shp2pgsql” und “psql” werden dabei zur Verfügung gestellt.
“shp2pgsql” funktioniert auch, aber die “psql” wird nicht ausgeführt.
Woran kann das liegen, bzw. was kann ich dafür tun das es funtioniert?
Bitte, ich brauche dringend Hilfe dabei!!!

MfG
Meike

Wenn ich mir das richtig vorstelle, was du versuchst, dann hast du einen Denkfehler.

Das Programm ‘psql’ ist nur ein Frontend für eine Datenbank, das Programm selber ist reichlich dumm und ohne Datenbank dahinter kannst du damit nichts anfangen.

Also was genau möchtest du erreichen?

Viel Prosa. Unter welchem OS erfolgt das alles? Hast Du einen zentralen PG-Server?
Das kommt nicht ganz raus aus Deiner Prosa, aber ich vermute mal, ja, weil sonst macht
es ja eh wenig Sinn.

Du kannst lokal mit dem psql-Tool auf dem Server arbeiten, indem Du Dir z.B. einen
SSH-Tunnel baust. Sollte auf dem Client noch so ein altertümliches OS arbeiten, dann geht
das über PuTTY. Falls Du dazu Hilfe brauchst, noch mal melden.

Das psql selbst kannst Du (zumindest unter Debian kenn ich das selber) als PG-Client-Paket
installieren. Oder, falls auf dem Client diese OS eines Herstellers von Spielkonsolen werkelt,
es vielleicht auch via SAMBA vom Server laden.

Oder Du erzeugst lokal die SQL-Befehle, schiebst die (wie auch immer) auf dem Server,
und führst dann psql auf. (CRON-gesteuert, oder einloggen, oder Mail hinschicken, die
das SQL als Anlage hat, oder…)

Es gäbe sicherlich noch mehr Lösungswege, aber, wie gesagt, Details Deinerseits wären
hilfreich, damit man hier nicht komplett am Ziel vorbei orakelt.


Ansonsten: psql ist ein Frontend zu einer PG-DB, es kann nicht standalone ohne Server
(egal wo der steht) arbeiten.


Andreas

Ok.
Es existiert ein Linux-Server, auf dem eine Postrgres-Datenbank liegt. Ebenfalls dort liegt eine Anwendung, die es den Mitarbeitern gestattet Daten in die Datenbank einzutragen. Es fehlt aber die Möglichkeit Shapes einzulesen, was hier doch sehr häufig benötigt würde.
Die Mitarbeiter haben die Shapefiles lokal auf ihren PCs (standardmäßig ausgestattet mit WindowsXP Professional).
Sie haben keine Berechtigung Programme zu installieren, haben deswegen auch nicht psql o.ä… Stelle ich nun psql mit auf dem Arbeitsplatzrechner zur Verfügung, dachte ich müsste es funktionieren.
Es liegt nun unter C:\shapes\bin.
Hab das ganze auch auf Rechnern ausprobiert, die Postgres installiert hatten, aber die konnten den Befehl "

psql -h Linux -p 5432 -d Grenzen -U test --password -f C:\shapes\shape.sql "

auch nicht ausführen!
Es kam der Fehler libpq.dll konnte nicht gefunden werden.
Ansich sollte doch zumindest auf diesen Rechnern das Programm laufen…

Die SQL jedesmal hinschicken ist leider zu umständlich, und hochladen ohne Programminstallation auch nicht so einfach.

Wie würde denn das mit dem PG-Client-Paket funktionieren?

Besten Dank für eure Unterstützung

Okay.

Die Fehlermeldung über die fehlende DLL ist eindeutig. Sie fehlt. Sie muß nicht nur vorhanden sein, sondern auch dort,
wo Windows danach sucht.


So, wie bekommst Du nun schmerzfrei Dein SQL auf den Server?

Unter *NIX gehen solche Spielchen:

kretschmer@tux:~$ echo “select current_date” | ssh pegasus -C ‘psql test’
date

2006-11-14
(1 row)


Ich aber nix Windows. Du kannst aber versuchen, genau dies auch mit PuTTY hinzubekommen.
Da benötigst Du, außer PuTTY, nix weiter auf den Rechnern. Und PuTTY ist IIRC nur eine einfache EXE.
Ja, das sollte gehen, hier in der Firma liegt die PuTTY.EXE auch nur auf einem SAMBA-Share und wird von da aus
gestartet, ohne weitere Installation, DLL oder sowas.

So, Problem gelöst!
Es lag wirklich nur an (mehreren) fehlenden DLLs.
Hätte ich selbst drauf kommen müssen…
Naja, besten Dank noch mal!