Bug #51356 [Opn]: using COM to call MSSQL Stored Procedure

From: Date: Tue, 23 Mar 2010 06:50:59 +0000
Subject: Bug #51356 [Opn]: using COM to call MSSQL Stored Procedure
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-148869@lists.php.net to get a copy of this message
Edit report at http://bugs.php.net/bug.php?id=51356&edit=1 ID: 51356 User updated by: zhou_wen_bo at 163 dot com Reported by: zhou_wen_bo at 163 dot com Summary: using COM to call MSSQL Stored Procedure Status: Open Type: Bug Package: COM related Operating System: WINDOWS PHP Version: 5.2.13 New Comment: The VB Code "Private ESPTest As New espNew.espc" should be: Private ESPTest As New esp.espc Previous Comments: ------------------------------------------------------------------------ [2010-03-23 07:42:30] zhou_wen_bo at 163 dot com Description: ------------ I wrote a Active Dll to call mssql stored procedure using ADO, something like below: Option Explicit Private db As New ADODB.Connection Private adocomm As New ADODB.Command Public Function ExecSP(sql As String) As ADODB.Recordset Set db = New ADODB.Connection db.ConnectionString = CONNECT_STRING db.CursorLocation = adUseClient db.ConnectionTimeout = 30 db.Open Set adocomm.ActiveConnection = db adocomm.CommandType = adCmdStoredProc adocomm.CommandText = "p_Common_Pagination" adocomm.Parameters(1) = sql adocomm.Parameters(2) = 1 adocomm.Parameters(3) = 20 Set ExecSP = adocomm.Execute End Function And Tested OK using VB code, there are some chinese characters: Option Explicit Private rs As New ADODB.Recordset Private ESPTest As New espNew.espc Private sql as String Private Sub Command1_Click() sql = "select * from t_User where FUserID>1000 and FName like '%中国人%' order by FUserID" Set rs = ESPTest.ExecSP(sql) End Sub Below is the Sql Profiler's output: exec p_Common_Pagination N'select * from t_User where FUserID>1000 and FName like ''%中国人%'' order by FUserID', 1, 20 But if I use php to call this DLL: <?php $sql = "select * from t_User where FUserID>1000 and FName like '%中国人%' order by FUserID"; $b= new COM("esp.espc"); $list=$b->ExecSP($sql); ?> The output of the SQL Profiler is : exec p_Common_Pagination N'select * from t_User where FUserID>1000 and FName like ''%中国人%'' order by FUserID The second and the third parameters are missing. I have tesed for a long time, and I'm sure the code I wroted are all right. What's the matter ? Test script: --------------- like above Expected result: ---------------- Fix the bug. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=51356&edit=1

« previous php.bugs (#148869) next »