Php 使用临时表[mssql]时,存储过程没有结果
我在mssql中有一个存储过程。SP在直接执行时工作正常。当我在PHP(PHPVersion5.5.13,ZF1.12.20)中调用它时,我没有得到任何结果Php 使用临时表[mssql]时,存储过程没有结果,php,sql-server,stored-procedures,Php,Sql Server,Stored Procedures,我在mssql中有一个存储过程。SP在直接执行时工作正常。当我在PHP(PHPVersion5.5.13,ZF1.12.20)中调用它时,我没有得到任何结果 General SQL Server error: Check messages from the SQL Server [4004] (severity 16) 当我移除带有临时表的部件时,它工作正常,但这不是我的选项,因为我没有SP。我缩短了SP以使其可读。它在4个不同的SP之间包含大约20个临时表,但每个临时表都会出现问题
General SQL Server error: Check messages from the SQL Server [4004] (severity 16)
当我移除带有临时表的部件时,它工作正常,但这不是我的选项,因为我没有SP。我缩短了SP以使其可读。它在4个不同的SP之间包含大约20个临时表,但每个临时表都会出现问题
$this->_connection = sqlsrv_connect($serverName, $connectionInfo);
...
$this->_stmt = sqlsrv_prepare( $this->connection, 'EXECUTE spBtrgEPM9_test 104215, 37');
...
$stmt->execute($aBindableSpParams);
$aPlainResult = $stmt->fetchAll();
$aResult = array();
foreach ($aPlainResult AS $aRow) {
$sRowClass = $this->getRowClass();
if (!class_exists($sRowClass)) {
Zend_Loader::loadClass($sRowClass);
}
$aResult[] = new $sRowClass(array("data" => $aRow));
}
// Cache result
self::$_aCache[$sSpSpec][$sMd5Hash] = $aResult;
}
return self::$_aCache[$sSpSpec][$sMd5Hash];
SP:
我仍然有一个问题,我不能处理数据类型XML,我也陷入了同样的问题,在很多搜索中,我知道在开始时添加“SET NOCOUNT on”,在最后一个过程中添加“SET NOCOUNT OFF”,解决了我的问题
ALTER proc [dbo].[spBtrgEPM9_test]
@arbId int
,@voId int
as begin
set nocount on
set dateformat dmy
SET ANSI_WARNINGS ON
SET ANSI_PADDING ON
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
SET ANSI_NULL_DFLT_ON ON
SET CONCAT_NULL_YIELDS_NULL ON
declare @xml_data xml
Create table #fnDataTable
(
LastName varchar(250)
,FirstName varchar(250)
,DateOfBirth date
,Gender int
,CustomerId int
,CustomerName varchar(250)
,CustomerNumber varchar(250)
,ContributionId int
)
insert into #fnDataTable(
LastName
,FirstName
,DateOfBirth
,Gender
,CustomerId
,CustomerName
,CustomerNumber
,ContributionId
)
exec CalcDB.dbo.GetSalesData @arbId,@voId
declare @xmlValidierung varchar(max)
Set @xmlValidierung = '<?xml version="1.0"?>'+
convert(varchar(max),
(select
(SELECT top 1 y.* FROM #fnDataTable y FOR XML PATH('persondata'), TYPE)
FOR XML PATH(''), ROOT('rentenrechner'))
)
select @xml_data= CONVERT(xml, @xmlValidierung)
select @xml_data as XML_DATA
Create table #fnDataTable
(
LastName varchar(250) null
,FirstName varchar(250) null
,DateOfBirth date null
,Gender int null
,CustomerId int null
,CustomerName varchar(250) null
,CustomerNumber varchar(250) null
,ContributionId int null
)