Hi Jens!
Ich sehe gerade, dass du das wirklich verwenden möchtest. In deinem Interesse --> tu es nicht. Die ODBC-Implementierung von pyWin32 ist sche....
Versuche lieber zuerst mit pyMssql eine Verbindung aufzubauen und damit zu arbeiten. Ich weiß leider nicht, ob pyMssql auch mit dem neuen SQL-Server funktioniert, ich arbeite mit dem MsSQL-Server 2000 und mit der MSDE 2000.
Glaube mir, ich habe alles durchprobiert was irgendwie eine Verbindung zum MS-SQLServer aufbauen und lizenzfrei verwendet werden kann. Nur pyMssql macht so gut wie keine Probleme. Das Einzige Problem, das bis jetzt aufgetaucht ist --> ich kann kein Euro-Zeichen aus einem Datenfeld auslesen oder schreiben. Das wird ständig durch einen Unterstrich "_" ersetzt.
Aber das ist mit den Problemen, die ich mit anderen Schnittstellen hatte nicht annähernd vergleichbar.
Z.B. kannst du mit der pyWin32-ODBC-Implementierung nichts in eine Tabelle schreiben, wenn diese keinen Primärschlüssel hat. Oder du bekommst keine Rückmeldung bei manchen Fehlern usw. Ich glaube, dass man damit auch keine "Gespeicherte Prozeduren" mit Rückgabewerten aufrufen kann. -- Sicher bin ich mir aber nicht mehr.
Bei anderen Schnittstellen gab es Umlautprobleme und ständig Abstürze. Manche reagieren einfach nicht mehr, wenn der Server mal kurz nicht erreichbar ist -- so etwas wie ein Timeout schien es nicht zu geben. Usw.
Wie bereits geschrieben -- der einzige Fehler, den ich bei pyMssql gefunden habe ist der mit dem Euro-Zeichen.
Es gibt auch noch die Möglichkeit, mit ADO über den Umweg "win32com.client.Dispatch", auf die Datenbank zuzugreifen. Wenn du also unbedingt mal ein Euro-Zeichen brauchst, dann würde ich es auf die schnelle mal über diesem Weg versuchen. Die Nachteile dieser Schnittstelle sind, das an ADO angelehnte Handling und die Performance, da es ja über Client-Dispatch geleitet wird.
Vorsicht! Verwende die Windows-Version von pyMsSql, die du bei Sourceforge herunterladen kannst, nicht die von Leonidas. Ich habe vor ein paar Tagen gemerkt, dass es einen Unterschied bei "fetchone()" gibt.
http://pymssql.sourceforge.net/
@Leonidas: Du liest eh mit, oder?
lg
Gerold