PostgreSQL verbindung schlägt fehl

  • Hallo alle beisammen!

    Entschuldigt dass ich in dieses forum poste aber der link zum datenbanken subforum funktioniert nicht.

    ich versuche mithilfe der funktion

    _postgres_query()
    [autoit]

    Func _postgres_query()

    [/autoit] [autoit][/autoit] [autoit]

    $oConn = ObjCreate("ADODB.Connection")
    $oRS = ObjCreate("ADODB.Recordset")

    [/autoit] [autoit][/autoit] [autoit]

    $db_Settings = "DRIVER={PostgreSQL Unicode};DATABASE=dbname;" & _
    "SERVER=localhost;PORT=5432;Uid=postgres;" & _
    "Pwd=dbpass;"

    [/autoit] [autoit][/autoit] [autoit]

    $oConn.Open($db_Settings)

    ;interaktion mit DB

    [/autoit] [autoit][/autoit] [autoit]

    $oConn.Close

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_postgres_query

    [/autoit] [autoit][/autoit] [autoit]

    $var = _postgres_query()
    MsgBox(0, "", $var)

    [/autoit]

    auf eine datenbank zuzugreifen (dbname)

    bekomme aber immer den fehler

    AutoIt Scripte\test.au3 (11) : ==> The requested action with this object has failed.:
    $oConn.Open($db_Settings)
    $oConn.Open($db_Settings)^ ERROR

    hab den fehler schon häufig gelesen aber noch keine antwort finden können
    ich verwende Scite(AI3), ist diese version eventuell nicht dafür geeignet?

    gibt es funktionierende UDF's für PostgreSQL befehle? (ich hab aus dem forum eine getestet, bei der ich dasselbe problem hatte)

    vielen dank für die antworten im vorraus und lieben gruß

  • hab den con string durch

    "User ID=postgres;Password=dbpass;Host=localhost;Port=5432;Database=dbname;"
    bzw
    "Driver={PostgreSQL};Server=localhost;Port=5432;Database=dbname;Uid=postgres;Pwd=dbpass;"

    ersetzt aber der fehler bleibt der gleiche :(
    ich hab schon verschiedene arten ausprobiert aber bekomme stets die gleiche fehlermeldung

    update: im englischen forum hab ich folgenden hinweis gefunden:

    Zitat

    you have to setup a Data Source Name or DSN in ODBC administration

    And instead of connecting to a driver...

    $oConnstr = "DRIVER={PostgreSQL ANSI};DATABASE=myDb;SERVER=myServer;Port=5432;Uid=myUid;Pwd=myPwd"

    ...you connect to the DSN....

    $oConnstr = "DSN=PostgreSQLxxx;DATABASE=myDb;SERVER=myServer;Port=5432;Uid=myUid;Pwd=myPwd"

    leider weiß ich nicht was ich machen soll (erster satz ?)
    wie erstelle ich den "DSN in ODBC administration" :pinch:

    E: hab herausgefunden wie ich den DSN erstellen kann (Systemsteuerung - Verwaltung) aber auch hier ist enie verbindung zur datenbank nciht möglich
    die daten sind aber 100% richtig, da ich über ein anderes programm die daten erfasse

    :S

    gruß

    2 Mal editiert, zuletzt von zombie36 (15. Dezember 2010 um 14:22)

  • Hallo zombie36,

    warum beachtest du diesen Hinweis nicht:

    Zitat von Hilfe

    Behalten sie im Sinn, dass nicht alle Computer den gleichen Satz an Objekten haben. Es sollte nach einem Aufruf von ObjCreate() immer auf Fehler geprüft werden.

    vielleicht liegt der Fehler ja beim CREATEn.

    Das das Forum Datenbanken nicht erreichbar ist, ist grosse SCH schade

    mfg autoBert

  • ein kurzer hoffnungsschimmer, weiterzukommen...:D

    aber nope, @error bleibt 0 :S

    es müsste halt am connection string liegen.

    den classname "AD0DB.connection" habe ich aus dem englischen forum übernommen, könnte hier eventuell ein fehler liegen? (ich weiß nicht was da genau passiert ;) aber @error is 0 :P )