Bug #51356 [Fbk->NoF]: using COM to call MSSQL Stored Procedure

From: Date: Sun, 08 Aug 2021 04:22:08 +0000
Subject: Bug #51356 [Fbk->NoF]: using COM to call MSSQL Stored Procedure
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-235663@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=51356&edit=1 ID: 51356 Updated by: php-bugs@lists.php.net Reported by: zhou_wen_bo at 163 dot com Summary: using COM to call MSSQL Stored Procedure -Status: Feedback +Status: No Feedback Type: Bug Package: COM related Operating System: WINDOWS PHP Version: 5.2.13 Assigned To: cmb Private report: N New Comment: No feedback was provided. The bug is being suspended because we assume that you are no longer experiencing the problem. If this is not the case and you are able to provide the information that was requested earlier, please do so and change the status of the bug back to "Re-Opened". Thank you. Previous Comments: ------------------------------------------------------------------------ [2021-07-30 17:09:16] cmb@php.net Hard to say what's the issue, but is this even still relevant? ------------------------------------------------------------------------ [2010-03-23 07:50:58] zhou_wen_bo at 163 dot com The VB Code "Private ESPTest As New espNew.espc" should be: Private ESPTest As New esp.espc ------------------------------------------------------------------------ [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 https://bugs.php.net/bug.php?id=51356&edit=1

« previous php.bugs (#235663) next »