postgres sql pgAdmin3 Serververgindung

Hallo :slight_smile: ,

habe folgendes Problem:

Betreibe unter WinXP SP2 Postgres SQL, halt die 8.3 Version die man auf der
PostgreSQL: The world’s most advanced open source database Seite bekommt.
Habe Postgres mit erweiterung installiert, also ecpg EMBEDDED SQL für c.
Libs, DLLs und Header sind am richtigen Ort.
Das Arbeiten mit der DOS-Konsole funktioniert wunderbar, ich kann Tabellen erstellen usw…,Der Dienst (Server läuft auch, sonst könnte ich ja
keine Tabellen und DBen erstellen.
Benutze pgAdmin III und habe die folgende Einstellung:

Beschreibung: server
Server (Hostname): 127.0.0.1
Port: 5432
Verschluesselung: keine
Wartungs-DB: postgres
Benutzername: test
Passwort speichern? jaVorherge Umgebun wiederherstellen: ja
Versionstring: PostgreSQL 8.3.1 compield by Visual C++ build 1400
Lezte System-OID: 11510
Verbunden? Ja
Autovaccum: läuft

Verwende jezt EMBEDDES SQL, habe mir auch eine db.pgc Datei erstellt und mit dem Befehl " ecpg db.pgc" daraus eine db.c erhalten, den Code aus der db.c habe ich mir mit Strg + c herauskopiert und in ein Visual Studio Projekt eingefügt, Linker habe ich auch richtig gesezt, habe auf Projekt erstellen geglick und dannach auf “starten ohne deguggen”, es wurde alles compiliert, gelinkt … perfekt.

Der Code der in der db.pgc steht sieht so aus:


#include <stdio.h>


EXEC SQL INCLUDE sqlca;



void main(int count, char **st)
{
 
    EXEC SQL BEGIN DECLARE SECTION;
    
    EXEC SQL END DECLARE SECTION;

    EXEC SQL CONNECT TO '127.0.0.1:5432' 
        AS conname USER "test" USING "none";
  
 if( SQLCODE != 0)
        printf("verbindung :-(");
    else
        printf("verbindung :-)");
  
}

Der Code der in der If-Anweisung steht prüft ob die Verbindung aufgebaut wurde.

nach dem Befehl “ecpg db.pgc” erhielt ich die Datei db.c mit dem Inhalt:

/* Processed by ecpg (4.2.1) */
/* These include files are added by the preprocessor */
#include <ecpgtype.h>
#include <ecpglib.h>
#include <ecpgerrno.h>
#include <sqlca.h>
/* End of automatic include section */

#line 1 "db.pgc"

#include <stdio.h>
void db_login(void);
void db_logout(void);
void db_begin(void);
void db_commit(void);
void db_rollback(void);



#line 1 "C:/Programme/PostgreSQL/8.3/include/sqlca.h"
#ifndef POSTGRES_SQLCA_H


#endif

#line 10 "db.pgc"




void main(int count, char **st)
{
 
    /* exec sql begin declare section */
    
    /* exec sql end declare section */
#line 19 "db.pgc"


    { ECPGconnect(__LINE__, 0, "127.0.0.1:5432" , "test", "none" , "conname", 0); }
#line 23 "db.pgc"

  
 if( SQLCODE != 0)
        printf("verbindung :-(");
    else
        printf("verbindung :-)");
  
}

Dies war der Code den ich in das VS-Project eingefügt und compielirt hatte, es hat auch funktioniert, leider kommt bei mir immer die Ausgabe
“verbindung :-(” , das bedeutet keine Verbindung wurde zur Datenbank aufgebaut, meine Frage ist jezt wieso nicht?
Ist eine Verbindung mit einem postgres Server unter WinXP nicht möglich?

Ich hoffe ihr könnt mir helfen, danke im Voraus.


Ha, hat sich erledigt, obwohl der Server mit dem Hostnamen 127.0.0.1 (Loopback Addresse) angeblich erreichbar ist erhatle ich eine Verbindung wenn, ich anstatt der Server-Addresse (Hostnamen 127.0.0.1) “postgres” als target eingebe.
Kann das Jemand erklären?

ps: Was ist ein Cluster?. Nachdem ich einen weiteren User erstellt habe, wie verwende ich ihn, wie kan nich mit der DOS-Konsole unter dem neun User arbeiten?

Cluster? Je nach Zusammenhang die Gesamtheit der einzelnen Datenbanken eines Servers oder ein Befehl um eine Tabelle entsprechend einem Index zu clustern.

Mit ‘DOS-Konsole’ meinst Du jetzt sicherlich psql, und dieses hat eine man-page. Keine Ahnung, wie man die auf Kleinweich zu sehen bekommt, egal. Also, Du kannst mit -U einen Usernamen spezifizieren.


Andreas