2010-01-13 12 views
7

Ich verwende PHP gegen SQL Server 2008 mit dem MSSQL-Treiber. Kennt jemand eine Möglichkeit, einen Tabellenwertparameter an die gespeicherte Prozedur zu übergeben?PHP SQL Server Tabelle Wert Parameter

+0

Sie meinen etwas wie 'EXEC mySP @ tname = N'mytable'' und dann führt mySP eine Abfrage auf der Tabelle' mytable' aus? – VolkerK

+1

Nein, ich meine eigentlich, die Daten, die die Tabelle darstellen, als Tabellenwertparameter zu übergeben. – AdamA

Antwort

6

Tabellenwertige Parameter sind not yet supported vom PHP MSSQL Driver.

Sie müssen etwas anderes ausprobieren, z. B. das Konvertieren Ihres TVP in XML und das Übergeben als Stream.

+0

Ein paar Follow-up-Hinweise: Zunächst eine Anmerkung, dass der oben genannte Treiber der Microsoft php-Treiber ist, aber nicht der Treiber ("mssql") viele von uns Benutzer, die Standard mit der PHP-Installation und aus plattformübergreifenden Gründen verwendet werden . Obwohl tvps derzeit vom Treiber nicht unterstützt werden, können Sie einen php-Datentyp verwenden. Wir haben eine Arbeit gefunden. Wenn der tvp "TYPE" bereits in der Datenbank erstellt wurde, können Sie in einer Abfrage eine Variable dieses Typs deklarieren und Zeilen darin einfügen. Sie können diese Variable anschließend als Parameter für einen Ausführungsbefehl des gespeicherten Proc verwenden. – AdamA