diff --git a/source/pdo_sqlsrv/pdo_stmt.cpp b/source/pdo_sqlsrv/pdo_stmt.cpp index c52e9442a..fd65b9eac 100644 --- a/source/pdo_sqlsrv/pdo_stmt.cpp +++ b/source/pdo_sqlsrv/pdo_stmt.cpp @@ -1180,9 +1180,10 @@ int pdo_sqlsrv_stmt_param_hook( _Inout_ pdo_stmt_t *stmt, } // if the parameter is output or input/output, translate the type between the PDO::PARAM_* constant // and the SQLSRV_PHPTYPE_* constant - int pdo_type = param->param_type; + // vso 2829: derive the pdo_type for input/output parameter as well + int pdo_type = (direction == SQL_PARAM_OUTPUT) ? param->param_type : param->param_type & ~PDO_PARAM_INPUT_OUTPUT; SQLSRV_PHPTYPE php_out_type = SQLSRV_PHPTYPE_INVALID; - switch( pdo_type & ~PDO_PARAM_INPUT_OUTPUT ) { + switch (pdo_type) { case PDO_PARAM_BOOL: case PDO_PARAM_INT: php_out_type = SQLSRV_PHPTYPE_INT; diff --git a/test/functional/pdo_sqlsrv/pdo_ae_output_param_binary_size.phpt b/test/functional/pdo_sqlsrv/pdo_ae_output_param_binary_size.phpt index 6feb6a503..fbd611111 100644 --- a/test/functional/pdo_sqlsrv/pdo_ae_output_param_binary_size.phpt +++ b/test/functional/pdo_sqlsrv/pdo_ae_output_param_binary_size.phpt @@ -88,12 +88,6 @@ function testOutputBinary($inout) $stmt = $conn->prepare($outSql); trace("\nParam $pdoParamType with INOUT = $inout\n"); - if ($inout && $pdoParamType == PDO::PARAM_STR) { - // Currently do not support getting binary as strings + INOUT param - // See VSO 2829 for details - continue; - } - if (!isAEConnected() && $pdoParamType == PDO::PARAM_INT) { // Without AE, there is no possible way to specify // binary encoding for this output param type,