ich habe etwas Zeit investieren müssen, um eine Verbindung
zu meiner PostgreSQL aufzubauen.
Um dem einen oder anderen, den Zeitaufwand etwas zu ersparen,
poste ich mal ein kleines Tut.

Nach viel hin und her, habe mich letztendlich für PyGreSQL entschieden
aber einen besonderen Grund gibt es nicht dafür,
da auch die anderen Projekte den aktuellen Standards
entsprechen.
Es war für mich am Anfang etwas frustrierend, eine Verbindung
zur DB hinzubekommen, da ich ständig mit Fehlern bezüglich
fehlender 'dlls' genervt wurde aber dies liess sich dann doch
recht einfach lösen.
Da ich PostgreSQL auch auf meiner Window-Schüssel
installierte hatte, habe ich nur in meine 'Path'-Umgebung
nur das 'bin'-Verzeichnis von PostgreSQL angeben müssen.
Natürlich kann man sich die einzelnen Dateien, sofern man sie
hat z.B. auch ins 'DLLs'-Verzeichnis kopieren oder sonst wohin.
Wichtig ist nur, das sie auch gefunden werden können.
Die benötigten Dateien aus dem 'bin'-Verezichnis von PostgreSQL
comerr32.dll
krb5_32.dll
libeay32.dll
libiconv-2.dll
libintl-2.dll
libpq.dll
ssleay32.dll
Ein kleines Beispiel, meiner DB-Testanbindung:
Code: Alles auswählen
from pyPgSQL import PgSQL
class PostgreSQL:
def __init__ (self,
_DNS,
_USER,
_PASSWORD,
_HOST,
_DBNAME,
_PORT,
_OPT,
_TTY,
_CLIENT_ENCODING,
_UNICODE_RESULTS) :
self.DNS = _DNS
self.USER = _USER
self.PASSWORD = _PASSWORD
self.HOST = _HOST
self.DBNAME = _DBNAME
self.PORT = _PORT
self.OPT = _OPT
self.TTY = _TTY
self.CLIENT_ENCODING = _CLIENT_ENCODING
self.UNICODE_RESULTS = _UNICODE_RESULTS
self.db = PgSQL.connect(self.DNS,
self.USER,
self.PASSWORD,
self.HOST,
self.DBNAME,
self.PORT,
self.OPT,
self.TTY,
self.CLIENT_ENCODING,
self.UNICODE_RESULTS)
def cursor(self):
return self.db.cursor()
##############################################################
##############################################################
#[Database]
DNS=None
USER='user_xy'
PASSWORD='user_pwd'
HOST='localhost'
DBNAME='user_db'
PORT=5432
OPT=None
TTY=None
CLIENT_ENCODING=None
UNICODE_RESULTS=None
QUERY_00="SELECT count(*) FROM db_xy"
def MyCon(self):
myDB = PostgreSQL(DNS,
USER,
PASSWORD,
HOST,
DBNAME,
PORT,
OPT,
TTY,
CLIENT_ENCODING,
UNICODE_RESULTS)
c_00 = myDB.cursor()
c_00.execute(QUERY_00)
fr_one = c_00.fetchone()
print fr_one[0]
def main():
MyCon(0)
if __name__ == '__main__':
main()
Und am Ende war dann doch alles ganz einfach..

Viele liebe Grüße
ZZHAT