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)