diff options
| author | Mark Newnham <mark@newnhams.com> | 2026-03-24 12:50:42 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-24 12:50:42 -0600 |
| commit | 99b4685b0b4ae6c4e833b41519294bb57f25bb9c (patch) | |
| tree | fe917dc14f6f9e3543ec9849bb1c8c1679f40937 | |
| parent | 9236543c992a0f2d0abe624eb520c24fd88c878c (diff) | |
| parent | 335bbff900fdbbb5b2182acbcb96e140e016e6ec (diff) | |
| download | adodb-99b4685b0b4ae6c4e833b41519294bb57f25bb9c.tar.gz adodb-99b4685b0b4ae6c4e833b41519294bb57f25bb9c.tar.bz2 adodb-99b4685b0b4ae6c4e833b41519294bb57f25bb9c.zip | |
Merge pull request #1230 from ADOdb/1229-db2-remove-deprecation-warnings-when-preparing-a-stored-procedure-for-use
Fixes #1229 deprecation warning in prepareSp() in db2 driver
| -rw-r--r-- | drivers/adodb-db2.inc.php | 49 |
1 files changed, 19 insertions, 30 deletions
diff --git a/drivers/adodb-db2.inc.php b/drivers/adodb-db2.inc.php index e49b6557..10fabb0f 100644 --- a/drivers/adodb-db2.inc.php +++ b/drivers/adodb-db2.inc.php @@ -1599,7 +1599,7 @@ See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/db2/htm/db2 */ function prepareSp($procedureName,$parameters=false) { - global $ADODB_FETCH_MODE; + //global $ADODB_FETCH_MODE; $this->storedProcedureParameters = array('name'=>'', 'resource'=>false, @@ -1609,74 +1609,60 @@ See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/db2/htm/db2 'parameters'=>array(), 'keyvalue' => array()); - //$procedureName = strtoupper($procedureName); - //$procedureName = $this->getTableCasedValue($procedureName); - - $savem = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - - $qid = db2_procedures($this->_connectionID, NULL , '%' , $procedureName ); - - $ADODB_FETCH_MODE = $savem; + $qid = db2_procedures($this->_connectionID, '' , '%' , $procedureName ); - if (!$qid) + if (!$qid) { if ($this->debug) ADOConnection::outp(sprintf('No Procedure of name %s available',$procedureName)); return false; } - - $this->storedProcedureParameters['name'] = $procedureName; /* * Now we know we have a valid procedure name, lets see if it requires * parameters */ - $savem = $ADODB_FETCH_MODE; - $ADODB_FETCH_MODE = ADODB_FETCH_NUM; - - $qid = db2_procedure_columns($this->_connectionID, NULL , '%' , $procedureName , NULL ); - $ADODB_FETCH_MODE = $savem; + $procedureName = strtoupper($procedureName); + $qid = db2_procedure_columns($this->_connectionID, '', '%' , $procedureName , '' ); if (!$qid) { if ($this->debug) ADOConnection::outp(sprintf('No columns of name %s available',$procedureName)); return false; } - $rs = new ADORecordSet_db2($qid); - if (!$rs) - return false; - + $preparedStatement = 'CALL %s(%s)'; $parameterMarkers = array(); - while (!$rs->EOF) - { - $parameterName = $rs->fields[3]; + + while ($rs = db2_fetch_assoc($qid)) { + + $parameterName = $rs['column_name']; if ($parameterName == '') { $rs->moveNext(); continue; } - $parameterType = $rs->fields[4]; - $ordinalPosition = $rs->fields[17]; + $parameterType = $rs['column_type']; + $ordinalPosition = $rs['ordinal_position']; switch($parameterType) { case DB2_PARAM_IN: case DB2_PARAM_INOUT: $this->storedProcedureParameters['in'][$parameterName] = ''; + if ($parameterType == DB2_PARAM_IN) { break; + } case DB2_PARAM_INOUT: case DB2_PARAM_OUT: $this->storedProcedureParameters['out'][$parameterName] = ''; break; } $this->storedProcedureParameters['index'][$parameterName] = $ordinalPosition; - $this->storedProcedureParameters['parameters'][$ordinalPosition] = $rs->fields; - $rs->moveNext(); - + $this->storedProcedureParameters['parameters'][$ordinalPosition] = array_values($rs); + } $parameterCount = count($this->storedProcedureParameters['index']); $parameterMarkers = array_fill(0,$parameterCount,'?'); @@ -1895,6 +1881,9 @@ See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/db2/htm/db2 { if ($this->debug) ADOConnection::outp("Adding parameter to stored procedure"); + + $name = strtoupper($name); + if ($stmt[1] == $this->storedProcedureParameters['resource']) return $this->storedProcedureParameter($stmt[1], $var, |
