Nuevo adaptador para Firebird

Gracias, no estaba activado el pdo, ahora me funciona, entonces a probar, cualquier cosa les voy avisando,

Saludos.

Hola, espero este sea el lugar adecuado para esta pregunta, la situación es la siguiente:

Tengo una tabla que empleo en Delphi y en Yii, esta tabla tiene un campo calculado

Create Table Personas(

                    Pers_Nombre1 tsNombre


                                Constraint Pers_Nombre1_NN Not Null, 


                    Pers_Nombre2 tsNombre, 


                    Pers_Nombre3 tsNombre, 


                    Pers_Paterno tsNombre


                                Constraint Pers_Paterno_NN Not Null, 


                    Pers_Materno tsNombre, 


                    [b]pers_Nombre[/b] computed by 


                        (


                          PERS_NOMBRE1 || ' '||


                          coalesce( PERS_NOMBRE2||' ', ' ')||


                          coalesce( PERS_NOMBRE3||' ', ' ')||


                          PERS_PATERNO || ' '||


                          coalesce( PERS_MATERNO||'', ''))                                            


                     );

La base de datos es Firebird, al generar el código, el campo pers_nombre lo emplea el Gii, eliminé toda referencia a este campo, pero me da el siguiente error al hacer cualquier modificación

"CDbCommand falló al preparar la sentencia SQL: SQLSTATE[HY000]:

General error: -151 attempted update of read-only column "

¿Hay manera de indicarle al AR que no envié el campo a la consulta SQL?.

Gracias de antemano

Hola,

Una alternativa que se me ocurre es agregar ese campo en rules() como "unsafe".

Saludos.

Mejoras a esta extensión pueden ser descargas en la página de extensiones.

Versión 1.0 RC lanzada.

Cualquier reporte de error o mejora es bienvenido.

Versión 1.0 RC2 lanzada.

Múltiples errores corregidos y mejoras implementadas.

Buenas nuevas:

Tan pronto como se lance la versión final y definitiva de esta extensión, se unirá al core de Yii.

Así estará disponible en la siguiente versión de Yii.

Saludos.

Gracias por el aporte,

Apunto algunos detalles para complementar si me permites…

  • Sobre PHP recuerdar habilitar PDO de Firebird en php.ini

  • A, verificar la versión de PHP que sea 5.3.10+

  • Para hacer la conexión use:


'db' => array(

  'connectionString' => 'firebird:dbname=localhost:'.dirname(__FILE__).'/../data/NOMBREBASE.FDB',

  'username'=>'USUARIO', 

  'password'=> 'CLAVE',

  'class' => 'ext.YiiFirebird.CFirebirdConnection',

  'enableParamLogging' => true,

),

Sigo haciendo pruebas…

Saludos.

Gracias por las notas, voy a agregarlas al README.

Saludos.

robregonm,

Una duda, pregunta, como debo usar las funciones para recibir los ID de los datos que inserto?

Haciendo pruebas en create tengo el problema que después de


$model->save()

no se recibe el ID al tratar de mandar a la vista con


$this->redirect(array('view','id'=>$model->id));

Como hacer los procesos ‘normales’ de Yii al crear/actualizar datos ?

Gracias, Saludos.

Hola,

He tratado de pasar de este punto por mi cuenta pero no he podido.

No se si estoy mal, no soy experto, pero buscando y tratando de entender todo este asunto, siguiendo el trace de la ejecución de mi aplicación y analizando el código no puedo encontrar los cambios a los comandos de system.db.CDbCommand que entiendo deben estar en FirebirdCommandBuilder, por ejemplo: createInsertCommand o getLastInsertID mi aplicación continua ejecutando estos comandos de la clase base CActiveRecord, por ejemplo, el insert:




05:31:35.573107 	trace 	system.db.CDbCommand

Executing SQL: INSERT INTO usuarios (tipo, activo, cancel_reason, u_crea,

usuario, pswrd, nombre, email, idioma, acceso, d_crea) VALUES (:yp0, :yp1,

:yp2, :yp3, :yp4, :yp5, :yp6, :yp7, :yp8, :yp9, current_timestamp). Bound

with :yp0=1, :yp1=1, :yp2='', :yp3=0, :yp4='Otro', :yp5='otro',

:yp6='Otro', :yp7='otro', :yp8='es', :yp9=2

in C:\xampp\htdocs\BServ\protected\controllers\UsuariosController.php

(73)

in C:\xampp\htdocs\BServ\index.php (13)



Estoy usando el código descargado de: YiiFirebird-1.0RC2.zip

Descomprimí en: protected\extensions\YiiFirebird

Me puedo conectar, generar el CRUD con Gii, tengo acceso a los datos para ver, crear, editar, etc, pero no funciona correctamente pues los comandos que se están ejecutando en la base de datos no son los adecuados para Firebird.

Que pasa o que estoy haciendo mal ?

Gracias por la ayuda y el tiempo.

Saludos.

Hola Arturo,

¿Todavía está experimentando este problema? Para echarle un vistazo… no me gustaría que lanzáramos la versión estable con este bug.

Saludos.

Si Ricardo, gracias por contestar… no he pasado de ahí, en verdad no entiendo que pasa.

Cómo lo podemos revisar?,

Gracias.

La versión RC4 ha sido lanzada, ahora mucho más estable y con varias mejoras y correcciones de errores (gracias a Edgard y Arturo).

Descárguenla y me cuentan cómo les fue.

Saludos.

@Arturo, esta actualización creo que le corrige el error que estaba teniendo, me cuenta si hay algún otro detalle.

Saludos

Hola soy nuevo en yii y me pidieron hacer unas conexiones con firebird y me surgen algunas dudas espero me puedan apoyar se los agradeseria

1.- funciona con el GII

2.- me marca error al seguir los pasos para habilitar el main.php

3.- podrian poner un poco mas detallado los requerimientos de esta extencion

desde ahora muchas gracias

Saludos

nuevamente espero puedan ayudarme ya que eh seguido los pasos y al entrar al gii me sale el siguiente error espero puedan ayudarme gracias

PHP warning

include(C:\wamp\www\yii\framework/db/schema/firebird/CFirebirdPdoAdapter.php) [<a href=‘function.include’>function.include</a>]: failed to open stream: No such file or directory

C:\wamp\www\yii\framework\YiiBase.php(403)

391 /**

392 * Class autoload loader.

393 * This method is provided to be invoked within an __autoload() magic method.

394 * @param string $className class name

395 * @return boolean whether the class has been loaded successfully

396 */

397 public static function autoload($className)

398 {

399 // use include so that the error PHP file may appear

400 if(isset(self::$classMap[$className]))

401 include(self::$classMap[$className]);

402 elseif(isset(self::$_coreClasses[$className]))

403 include(YII_PATH.self::$_coreClasses[$className]);

404 else

405 {

406 // include class file relying on include_path

407 if(strpos($className,’\\’)===false) // class without namespace

408 {

409 if(self::$enableIncludePath===false)

410 {

411 foreach(self::$_includePaths as $path)

412 {

413 $classFile=$path.DIRECTORY_SEPARATOR.$className.’.php’;

414 if(is_file($classFile))

415 {

gracias espero puedan ayudarmee

Pase a comentar, un poco mi experiencia ya con algún tiempo de trabajo en Yii,

Después de buscar mucho instale apache 2.2 con PHP Versión 5.4.4

y recién voy bajando yii-1.1.14.f0fee9.zip

Siguiendo la instalación recomendada se puede trabajar perfectamente con Yii y FB

Para el desarrollo hay plug ins tanto en netbeans como en eclipse

Slds

Hola amigos soy nuevo en YII ya logre instalar la extensión hasta el momento parece funcionar bien, hay alguna diferencia con la conexión mysql y dos hay alguna forma de conectarse con la versión de firebird 1.5 porque el programa que utiliza esta bases es un programa desarrollado en esta versión

Agradezco por cualquier ayuda