Problema Con Sqlsrv Query

Estimados, espero que puedan ayuarme, soy nuevo en esto de usar MSSQL, especialmente uso el driver sqlsrv (Microsoft Drivers for PHP for SQL Server 2.0) con PHP 5.3.1, he logrado conectarme, generar algunos CRUD y he probado que se insertan los datos correctamente en la base de datos, el problema que tengo radica en la utilización del metodo query de la clase CDbCommand pues quiero ejecutar una consulta en el controlador y enviar el resultado a una vista pero no obtengo el resultado esperado.

aqui los detalles:

codigo en el controlador


$sql="SELECT Serie, Numero FROM Ventas WHERE idVenta= 195662";

	$connection= $command=$connection->createCommand($sql);

	$row=$command->query();

$this->render('admin',array(

'model'=>$model,

'r'=>$row,));



y en la vista solo quiero ver el resultado del array resultante con:


<?php print_r($r) ?>

lo que obtengo es lo siguiente:

CDbDataReader Object ( [_statement:CDbDataReader:private] => PDOStatement Object ( [queryString] => SELECT v.Serie, v.Numero FROM dbo.Ventas v WHERE v.idVenta= 195662 ) [_closed:CDbDataReader:private] => [_row:CDbDataReader:private] => [_index:CDbDataReader:private] => -1 [_e:CComponent:private] => [_m:CComponent:private] => )

la verdad estoy desconsertado.

$command->query() devuelve un CDbDataReader que es un "stream" y no un arreglo puro; tienes que leer el resultado usando el comando read().




$row = $command->query->read();



Por otra parte, Yii ofrece una mejor alternativa al print_r de PHP; se llama CVarDumper y simplifica el despliegue de valores porque automáticamente detecta su tipo y se ajusta de acuerdo al mismo.

Muchas gracias JFReyes, me sirvio mucho tu ayuda, me funciono lo que me indicaste con un pequeño arreglo porque tal como puse la linea: $row = $command->query->read(); me tiraba un error que desconocia el metodo query(), pero al fin lo corregi de la siguiente forma:


$row=$command->query();

$row=$row->read();

Bueno en fin cosas que pasan, tambien muchas gracias por la sugerencia de usar CVarDumper; me parece genial contar con esa potencialidad.

Un saludo.

Tienes razón, se me pasó esa de que read() debe ser por separado :-p

Me alegro que hayas podido resolver el problema.