SQL Server PHP Yordam Çağrısı Saklı - xml veri alınamıyor php geri döner

1 Cevap php

Php bir SQL Server saklı yordamı çağırmak için çalışıyor. Ben çalışma var düşünüyorum ama geri php içine döner veriler alınamıyor. Benim php kodu ve aşağıda örnek SQL Server kod kopyalama ediyorum.

Benim sorunum reportData geri veri almak do nasıl inanıyoruz? mssql_execute () sadece boolean true döndürür. Prosedür xml olarak reportData verileri depolayan gibi görünüyor bana. I referans reportData içine veri almak için () mssql_bind kullanmaya çalıştığınızda ancak ben varchar xml dönüştürme hakkında uyarılar alıyorum.

My php Code

mssql_query("exec ZUSER.pSessionCreate @LoginName = 'admin', @Password = 'xxxx'", $Conn);
$proc = mssql_init("ZUSER.pAppraisal", $Conn);
$reportData="";
$portfolios=3014;
$date="08/19/2009";
mssql_bind($proc, "@reportData", &$reportData, SQLVARCHAR , TRUE, FALSE, 4000);
mssql_bind($proc, "@portfolios", $portfolios, SQLVARCHAR);
mssql_bind($proc, "@date", $date, SQLINT4 );
$result = mssql_execute($proc);

İşte bu hataları atmak olacaktır.

Warning: mssql_execute() [function.mssql-execute]: message: Implicit conversion from data type xml to varchar is not allowed. Use the CONVERT function to run this query. 
Warning: mssql_execute() [function.mssql-execute]: stored procedure execution failed

Ben SQLTEXT TO SQLVARCHAR gelen mssql_bind türünü değiştirirseniz o zaman bu hatayı alıyorum.

Warning: mssql_execute() [function.mssql-execute]: message: Invalid parameter 1 ('@reportData'): Data type 0x23 is a deprecated large object, or LOB, but is marked as output parameter. Deprecated types are not supported as output parameters. Use current large object types instead.

Denemek ve reportData veri dönmez ki ben böyle mssql_bind kullanmayın yoksa .. Ayrıca bu hata ile çalışır ve gerçek verir ama ben ihtiyacım verileri almak nasıl hiçbir fikrim yok.

mssql_bind($proc, "@reportData", $reportData, SQLVARCHAR);

Ben denemek ve benim çağrı mssql_execute için sonra bu sorguyu çalıştırırsanız, bu durumda bu hatayı alıyorum.

$result=mssql_query("select field1, field2, field3 from ZUSER.pAppraisal(@reportData)", $Conn);

Warning: mssql_query() [function.mssql-query]: message: Must declare the scalar variable "@reportData"

Example SQL Server Code:

declare @SessionGuid uniqueidentifier
declare @portfolios nvarchar(max)
declare @date datetime
set @portfolios='3014'
set @date='08/19/2009'
exec ZUSER.pSessionCreate @LoginName = 'admin', @Password = 'xxxx'
declare @reportData xml
exec ZUSER.pAppraisal
    @reportData=@reportData out
    ,@portfolios = @portfolios
    ,@date = @date

select field1, field2, field3 from ZUSER.fAppraisal(@reportData)

1 Cevap

Sen SQL Server Native client for PHP XML gibi yeni veri türleri kaldıraç gerekir.