本帖最后由 ycliaojy 于 2013-03-24 20:40:29 编辑 php调用使用链接服务器的mssql存储过程出错,哪位有遇过到类似的问题?
//省略其它语句
$queryP= "exec OA_pfm_attend_group_toExempt @begin='$DATE1',@end='$DATE2'";
$cursor = msexequery( $msconnection, $queryP );
//省略其它语句
//组合的$queryP是:exec OA_pfm_attend_group_toExempt @begin='2013-03-01',@end='2013-03-24'
存储过程在查询分析器执行没有问题,把所有使用链接服务器的语句删除后php调用也没有问题,是不是php调用的存储过程不能使用链接服务器?我写个asp试试有问题没[经过测试,存储过程在asp下执行也没有任何问]
php的出错信息无参考价值:
错误#0:
SQL语句: exec OA_pfm_attend_group_toExempt @begin='2013-03-01',@end='2013-03-24'
sqlserver事件跟踪和日志信息查不到有用的信息.
存储过程代码:
<br>drop proc OA_pfm_attend_group_toExempt<br>go<br>Create proc OA_pfm_attend_group_toExempt<br>@begin datetime,<br>@end datetime<br>as<br>begin<br> set nocount on<br> set ANSI_WARNINGS on<br> set ANSI_NULLS on<br> --declare @begin datetime<br> --declare @end datetime<br> --set @begin = @beginSTR<br> --set @end = @endSTR<br> create table #query_Table_Temp (<br> checkDay datetime not null<br> ,checkIn datetime not null<br> ,checkOut datetime not null<br> ,isHoliday bit not null default 0<br> )<br> declare @checkDay datetime<br> declare @checkIn datetime<br> declare @checkOut datetime<br> set @checkDay = @begin<br> while (@checkDay set @checkIn = convert(varchar(10),@checkDay)+' 08:35:00'<br> set @checkOut = convert(varchar(10),@checkDay)+' 18:30:00'<br> insert into #query_Table_Temp (checkDay,checkIn,checkOut) values(@checkDay,@checkIn,@checkOut)<br> --update #query_Table_Temp set isHoliday=1 where checkDay in (select Holiday from OPENQUERY(OAMySQL, 'SELECT * from a_rest_holiday'))<br> set @checkDay = dateadd(day,1,@checkDay)<br> end<br> delete from #query_Table_Temp where checkDay in (select Holiday from OPENQUERY(OAMySQL, 'SELECT * from a_rest_holiday'))--这句引起出错,把这些调用链接服务器的所有语句删除就举出错<br> create table #attend_Temp(<br> checkDay datetime not null<br> ,userID int<br> ,Name varchar(30)<br> ,User_ID varchar(30)<br> ,dept_ID int<br> ,defCheckIn datetime<br> ,defCheckOut datetime<br> ,checkIn datetime null<br> ,checkOut datetime null<br> ,rest bit not null default 0<br> ,leave1 bit not null default 0<br> ,leave2 bit not null default 0<br> ,out1 bit not null default 0<br> ,out2 bit not null default 0<br> ,evection bit not null default 0<br> )<br> insert #attend_Temp (checkDay,userID,Name,User_ID,dept_ID,defCheckIn,defCheckOut)<br> select a.checkDay,b.UserID,b.Name,b.oa_UserID,b.defaultDeptID,a.checkIn,a.checkOut from #query_Table_Temp a join FileServiceDB.dbo.UserInfo b on 1=1 where b.Active=1 and b.checkFree=0<div class="clear">
</div>
Copy after login