Jump to content

Problem mit ODBC Verbindung von PHP


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo!

Ich programmiere in PHP und habe ein Problem mit einer MS SQL-Datenbank:
Ich verbinde mich (von meinem WIN7 Testsystem mit XAMPP) auf einen MS-SQL-Server im lokalen Netz.

 

$db = odbc_connect("dsn","blubb","blubb",SQL_CUR_USE_ODBC);

 

Leider habe ich ein großes Problem, sobald ich mehrere Abfragen an den Server schicke:
Ich mache eine Select-Abfrage und für jedes Ergebnis dieser Select Abfrage mache ich dann ein Update und ein Insert. (i.d.R. sind das kleine Datenmengen - max 10 Datensätze)

Wenn ich nur das UPDATE mache (oder nur das INSERT), funktioniert alles problemlos (auch wenn es 10000 Datensätze sind). Aber sobald das ich beides mache (UPDATE und INSERT), dann bekomme ich vom MS SQL-Server folgende Fehlermeldung:

 

Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC SQL Server Driver]Die Verbindung ist mit Ergebnissen von einem anderen hstmt belegt, SQL state S1000 in SQLExecDirect in C:\xampp\htdocs\...... on line 167

 

Gut, ich dachte mir: Machste halt ne zweite Verbindung zum MS-SQL Server auf:

$db2 = odbc_connect("dsn","blubb","blubb",SQL_CUR_USE_ODBC);  

aber das bringt absolut gar nichts...




Hier habe ich ein paar Infos gefunden: Scheinbar gibt es das Problem nicht nur bei PHP, sondern es ist ein allgemeines ODBC Problem.
Testweise habe ich wie in dem Link beschrieben auch schon einen anderen ODBC-Treiber genommen. Doch hier habe ich das gleichen Problem (mit einer etwas anderen Fehlermeldung: )

 

Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][SQL Server Native Client 11.0]Die Verbindung ist mit Ergebnissen eines anderen Befehls beschäftigt, SQL state S1000 in SQLExecDirect in C:\xampp\htdocs\... on line 167

 


Was mir noch auffällt:
Einmal geht der ganze Prozess durch. D.h. einmal wird das Update UND der Insert durchgeführt. Erst danach sagt der Treiber "nö, kein Bock mehr"


Jetzt weiß ich nicht mehr weiter... Hattet Ihr das Problem schonmal?
Kann es damit zusammenhängen, dass auf dem Server nur die "Billigere-Version" von MS SQL läuft? (="Express") Habt Ihr Ideen wie ich das Problem lösen kann?

 

 

Crossposting:

Zur Info: Diesen Beitrag habe ich genau so auch in einem anderen Forum gepostet in dem es explizit um die Entwicklung in PHP geht. Aber da wurde ich nur angemault, weil ich ja so b***d bin eine MS SQL-Datenbank einzusetzen und dass MS eh sc***e ist. Da dachte ich mir: Gehst dieses Mal lieber gleich zu den Profis und fragst da nochmal nach! :D

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...