Dear All, I've got a nasty little problem here I hope someone can help me... I'm doing a job which requires me to use a 3rd party COM component to connect to a MSSQL Server. This works by calling Stored Procedures in the MSSQL DB and returning them in an ADO RecordSet. The VB Declaration of the COM object function I use is: <boolean> = DBRequest(ByRef responseDB as Variant, ByRef ErrorStr as Variant, database as String, Procedure as String, ParamArray paramlist() as Variant) I have written 2 test scripts one in ASP VBScript and one in PHP. The VBScript one works fine but the PHP one doesn't. I have pretty much definitively established that the problem with the PHP script is that the RecordSet being passed in by reference is not happening. Both examples (given below) connect successfully to the DB via the COM object and execute the specified Stored Procedure. The PHP ADO Recordset parameter is still empty after the function call. I have also forced an error by calling a non-existent SP and confirmed that the Error String parameter, (also passed in by reference) is empty in PHP and not in ASP. So my question is... HOW DO I PASS A PARAMETER BY REFERENCE TO A COM OBJECT FUNCTION IN PHP? <<<<< ASP EXAMPLE >>>>> <%@ Language=VBScript %> <% Dim VBDB Dim RecSet Dim RetVal Dim sDatabase Dim sError Set RecSet= Server.CreateObject("ADODB.RecordSet") Set VBDB = Server.CreateObject("VBDBClientProtocol.msgProtocol") VBDB.LocalHostIP = "127.0.0.1" VBDB.RemotePort = 6667 VBDB.RemoteHostIP = "127.0.0.1" RetVal = VBDB.DBRequest(RecSet, sError, "Oort", "osp_get_Regions") If RetVal Then While (Not RecSet.EOF) Response.Write RecSet.Fields(0).Value Response.Write "<br>" Response.Write RecSet.Fields(1).Value Response.Write "<br>" RecSet.MoveNext Wend RecSet.Close Else Response.Write sError End If VBDB.Disconnect Set VBDB = Nothing Set RecSet = Nothing %> <<<<< PHP EXAMPLE >>>>> <?php $VBDB = new COM("VBDBClientProtocol.msgProtocol"); $VBDB->LocalHostIP = "localhost"; $VBDB->RemotePort = 6667; $VBDB->RemoteHostIP = "localhost"; $rs = new COM("ADODB.Recordset"); $sError = ""; $ReqSuccessful = $VBDB->DBRequest(&$rs, &$sError, "Oort", "osp_get_Regions"); if ($ReqSuccessful) { while (!$rs->EOF) { echo $rs->Fields["inRegion"]->value . "<br>"; echo $rs->Fields["vcName"]->value . "<br>"; $rs->MoveNext(); } } $rs->Close(); $rs = null; $VBDB->Disconnect(); $VBDB = null; ?> -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php