Seite 2 von 2

Re: Zugriff mit pymssql auf MS-SQL Server

Verfasst: Mittwoch 27. April 2022, 11:50
von __deets__
Senseo3 hat geschrieben: Mittwoch 27. April 2022, 10:49 Hello -deets - ( cooles Posting :D )

Mal ensthaft: (FRIEDEN :wink: )

Hier, du Profi: https://docs.microsoft.com/en-us/previo ... dfrom=MSDN

Die Aussage ist korrekt, aber das comm.commit() schreibt doch erst mal die Daten im 1. Script in die Tabelle.
Innerhalb einer Transaktion legst du eine Tabelle an. Und dann legst du gleich Daten in einer Tabelle an, noch in der Transaktion. Erst dann kommt ein commit. Und in dem MSDN Artikel steht "nachfolgende Statements koennen sich nicht auf hinzugefuegte Spalten beziehen". Was du aber gerade gemacht hast.

Weswegen ich um das Experiment "Daten in bestehender Tabelle anlegen und auslesen" gebeten habe. Bestehend kann auch heissen die Tabelle in ihrer eigenen Transaktion anzulegen.

Re: Zugriff mit pymssql auf MS-SQL Server

Verfasst: Mittwoch 27. April 2022, 11:57
von __deets__
LotharK hat geschrieben: Mittwoch 27. April 2022, 11:03 Hallo S3
Deine Fragen waren von Anfang an gut formuliert.
Du bist hier der Fragesteller. Das bedeutet: Dau, keine Ahnung, unerfahren. Dein Code ist schon ungelesen Schrott.

Dein Pi verwendet mit Sicherheit eine Version, welche damals einen Bug hatte. Du wirst Dich auf den Kopf stellen können, mit der Version funktioniert es nicht. Entweder neues Image oder so lassen.
Dein Programmschnipsel funktioniert einwandfrei. In der Connection musst Du noch "host" verwenden. Das ist das entscheidende Indiz. Richtig muss es nun "server" heißen, funktioniert bei Dir aber nicht.
Hast du auch inhaltlich was beizutragen, oder willst du einfach nur mal rumkotzen, weil dir eine Laus ueber die Leber gelaufen ist?

Das der Schnipsel einwandfrei funktioniert, wenn er das offensichlich nicht tut, weswegen hier ueberhaupt die Frage aufkommt, ist schon eine steile Behauptung. Und sehr hilfreich.

Re: Zugriff mit pymssql auf MS-SQL Server

Verfasst: Mittwoch 27. April 2022, 12:04
von Senseo3
Hallo,

Innerhalb einer Transaktion legst du eine Tabelle an. Und dann legst du gleich Daten in einer Tabelle an, noch in der Transaktion. Erst dann kommt ein commit. Und in dem MSDN Artikel steht "nachfolgende Statements koennen sich nicht auf hinzugefuegte Spalten beziehen". Was du aber gerade gemacht hast.


Was du schreibst klingt plausibel, aber wieso steht es dann so als offizielles Beispiel auf einer offiziellen Seite?
Und wieso bekomme ich als Resultat schon die Kopfzeile?
Ürigens - wie schon geschrieben, bekomme ich ja auch keine Daten aus einer längst vorhandenen Tabelle.



Aber wir werden das wohl beenden können. Die, so vermute ich, richtige Lösung wurde ja gepostet.

Gruß S3

Re: Zugriff mit pymssql auf MS-SQL Server

Verfasst: Mittwoch 27. April 2022, 12:18
von Senseo3
Hallo,
Nachtrag und Korrektur.
Das verwendete Script stammt von der offiziellen Seite pyMssql.

@deets
ich will hier wirklich nicht rummotzen, aber was sagst Du dazu? Die Entwickler haben den Code eigenhändig so hinterlegt. Es würde bedeuten, dass sie allse falsch gemacht haben und auch die msdn nicht gelesen haben.
Das erscheint mir aber unlogisch.

https://pythonhosted.org/pymssql/pymssql_examples.html

Ich habe das Sript tatsächlich von "server" auf "host" geändert, da "server" mit Fehler terminierte.

@Lothar nun habe ich zum Glück einen "Profi" gefunden - danke.

Gruß S3

Re: Zugriff mit pymssql auf MS-SQL Server

Verfasst: Mittwoch 27. April 2022, 12:25
von LotharK
Hallo Deets,

wie bist Du denn drauf. Ich habe den angepassten Code bei mir laufen lassen und getestet. Bei mir funktioniert er. Die Tabelle wird angelegt und ich bekomme die Daten zurück.
Hast Du Dir auch die Mühe gemacht, oder beleidigst Du hier die anderen, weil du nur das am besten kannst?

Für mich ist das Thema erledigt!

By By

Re: Zugriff mit pymssql auf MS-SQL Server

Verfasst: Mittwoch 27. April 2022, 12:49
von __blackjack__
@Senseo3: Das erste Skript stammt von Python.org? Kannst Du da mal bitte einen Link drauf posten, denn das glaube ich so nicht mit der fehlerhaften Abfrage der Daten.

Edit: Okay Du hast also das Beispiel von pymssql und da aus einem `fetchone()` ein `fetchall()` gemacht. Warum auch immer.

Re: Zugriff mit pymssql auf MS-SQL Server

Verfasst: Mittwoch 27. April 2022, 13:12
von __deets__
Senseo3 hat geschrieben: Mittwoch 27. April 2022, 12:18 Hallo,
Nachtrag und Korrektur.
Das verwendete Script stammt von der offiziellen Seite pyMssql.

@deets
ich will hier wirklich nicht rummotzen, aber was sagst Du dazu? Die Entwickler haben den Code eigenhändig so hinterlegt. Es würde bedeuten, dass sie allse falsch gemacht haben und auch die msdn nicht gelesen haben.
Das erscheint mir aber unlogisch.
Es kann sein, dass sich so ein Verhalten ueber die Zeit aendert, abhaengig davon, wie die Datenbank sich entwickelt. Also deren Version. Darum mag das fuer die geklappt haben, und fuer dich nicht. Der Umgang mit DDL ist bei Datenbanken sehr unterschiedlich, weil es ein sehr komplexes Thema ist. Postgres zB erlaubt die komplett transaktional zu behandeln, SQLite kann das, was du probiert hast, auch ohne Probleme. MS hat da offensichtlich Probleme, sonst haette es ja funktioniert bei dir 🤷

Es hat also nicht so viel mit den Entwicklern von pymssql zu tun, die bedienen ja nur die Schnittstelle der DB. Das Verhalten der Datenbank selbst kontrolliert MS.

Re: Zugriff mit pymssql auf MS-SQL Server

Verfasst: Mittwoch 27. April 2022, 13:14
von __deets__
LotharK hat geschrieben: Mittwoch 27. April 2022, 12:25 wie bist Du denn drauf. Ich habe den angepassten Code bei mir laufen lassen und getestet. Bei mir funktioniert er. Die Tabelle wird angelegt und ich bekomme die Daten zurück.
Hast Du Dir auch die Mühe gemacht, oder beleidigst Du hier die anderen, weil du nur das am besten kannst?
Du bist derjenige, der hier erstmal mit ein paar anmassenden Beleidigungen dazu, wie hier vermeintlich mit Usern umgegangen wird, eingestiegen ist. Also tu jetzt nicht so, als ob *ich* hier irgendwie drauf waere. Wer in den Wald ruft, der muss auch aushalten, was dann da so rausschallt.

Und beim TE hat's halt nicht funktioniert. Schoen, dass es das bei dir tut, eine Hypothese, warum das bei ihm nicht so ist, hast du nicht beigesteuert. ICh hingegen schon. Soviel also zu wer sich hier wieviel Muehe macht.