Yii Framework Forum: Nuevo adaptador para Firebird - Yii Framework Forum

Jump to content

  • (2 Pages)
  • +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

Nuevo adaptador para Firebird Rate Topic: ***** 1 Votes

#1 User is offline   robregonm 

  • Expert Yii Developer
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 594
  • Joined: 30-July 09
  • Location:Colombia

Posted 20 February 2012 - 09:52 PM

Hola a todos,He actualizado el adaptador paraconexiones a Yiiinicialmente creado por idle_sign y luego modificado zoggo.<br style="color: rgb(28, 40, 55); font-size: 13px; line-height: 19px; background-color: rgb(250, 251, 252); ">Corregí algunos errores (al menos los que encontré :P ) relacionados con el generador de código y los campos incrementales (ahora el adaptador detecta si la llave primaria es autoincremental).<br style="color: rgb(28, 40, 55); font-size: 13px; line-height: 19px; background-color: rgb(250, 251, 252); ">Además el adaptador es compatible con la versión Yii 1.1.10 (y superiores).


Para descargar: http://www.yiiframew...&attach_id=2576


Espero que sea de ayuda.
Saludos y éxitos.
Ricardo Obregón

YiiFramework en Español - http://yiiframework.co/ - http://yiiframeworkenespanol.org/ - Yii Code Generator for Bootstrap
http://obregon.co/ - https://1server.co/
PHP 5.5+, nginx 1.7, MySQL(MariaDB & PerconaDB), PostgreSQL 9, Yii 2, CanJS
Follow me: @robregonm & @obregonco & @1ServerCo.
0

#2 User is offline   robregonm 

  • Expert Yii Developer
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 594
  • Joined: 30-July 09
  • Location:Colombia

Posted 20 February 2012 - 09:53 PM

Por si tienen problemas para descargar el archivo desde el link, acá está el post original en inglés: http://www.yiiframew...rebird-adapter/
Ricardo Obregón

YiiFramework en Español - http://yiiframework.co/ - http://yiiframeworkenespanol.org/ - Yii Code Generator for Bootstrap
http://obregon.co/ - https://1server.co/
PHP 5.5+, nginx 1.7, MySQL(MariaDB & PerconaDB), PostgreSQL 9, Yii 2, CanJS
Follow me: @robregonm & @obregonco & @1ServerCo.
0

#3 User is offline   robregonm 

  • Expert Yii Developer
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 594
  • Joined: 30-July 09
  • Location:Colombia

Posted 20 February 2012 - 09:55 PM

Esta versión es bastante estable, la estoy usando en un proyecto y ha funcionado bastante bien, de todas formas agradezco a quienes puedan ayudar a notificar posibles errores y así posiblemente incluirla en el núcleo de Yii :)
Ricardo Obregón

YiiFramework en Español - http://yiiframework.co/ - http://yiiframeworkenespanol.org/ - Yii Code Generator for Bootstrap
http://obregon.co/ - https://1server.co/
PHP 5.5+, nginx 1.7, MySQL(MariaDB & PerconaDB), PostgreSQL 9, Yii 2, CanJS
Follow me: @robregonm & @obregonco & @1ServerCo.
0

#4 User is offline   IRCSASW 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 63
  • Joined: 01-September 11
  • Location:Cancún, México.

Posted 23 February 2012 - 02:13 AM

View Postrobregonm, on 20 February 2012 - 09:55 PM, said:

Esta versión es bastante estable, la estoy usando en un proyecto y ha funcionado bastante bien, de todas formas agradezco a quienes puedan ayudar a notificar posibles errores y así posiblemente incluirla en el núcleo de Yii :)


Hola Ricardo,

Me puedes pasar las referencias a las instrucciones de uso por favor.

Saludos.
Arturo Ramos
www.ircsasoftware.com.mx
Cancún, México
0

#5 User is offline   robregonm 

  • Expert Yii Developer
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 594
  • Joined: 30-July 09
  • Location:Colombia

Posted 28 February 2012 - 12:53 PM

Con gusto Arturo,
Se descomprime en framework/db/schema/firebird


En YiiBase.php
---------------------

Se agrega lo siguiente:
		'CFirebirdColumnSchema' => '/db/schema/firebird/CFirebirdColumnSchema.php',
		'CFirebirdCommandBuilder' => '/db/schema/firebird/CFirebirdCommandBuilder.php',
		'CFirebirdPdoAdapter' => '/db/schema/firebird/CFirebirdPdoAdapter.php',
		'CFirebirdSchema' => '/db/schema/firebird/CFirebirdSchema.php',
		'CFirebirdTableSchema' => '/db/schema/firebird/CFirebirdTableSchema.php',

después de la línea (695 en yii-1.1.10.r3566) :

		'CDbTableSchema' => '/db/schema/CDbTableSchema.php',



En framework/db/CDbConnection.php
-----------------------------------------------------

createPdoInstance() debería lucir así:


	protected function createPdoInstance()
	{
		$pdoClass='PDO';
		if(($pos=strpos($this->connectionString,':'))!==false)
		{
			$driver=strtolower(substr($this->connectionString,0,$pos));
			if($driver==='mssql' || $driver==='dblib')
				$pdoClass='CMssqlPdoAdapter';
			if($driver==='firebird')
				$pdoClass='CFirebirdPdoAdapter';
		}
		return new $pdoClass($this->connectionString,$this->username,
									$this->password,$this->_attributes);
	}

La variable $driverMap debería lucir así (línea 236 en yii-1.1.10.r3566):

	public $driverMap=array(
		'pgsql'=>'CPgsqlSchema',    // PostgreSQL
		'mysqli'=>'CMysqlSchema',   // MySQL
		'mysql'=>'CMysqlSchema',    // MySQL
		'sqlite'=>'CSqliteSchema',  // sqlite 3
		'sqlite2'=>'CSqliteSchema', // sqlite 2
		'mssql'=>'CMssqlSchema',    // Mssql driver on windows hosts
		'dblib'=>'CMssqlSchema',    // dblib drivers on linux (and maybe others os) hosts
		'sqlsrv'=>'CMssqlSchema',   // Mssql
		'oci'=>'COciSchema',        // Oracle driver
		'firebird'=>'CFirebirdSchema',//Firebird driver
	)

Espero que sirva.

Saludos y éxitos.
Ricardo Obregón

YiiFramework en Español - http://yiiframework.co/ - http://yiiframeworkenespanol.org/ - Yii Code Generator for Bootstrap
http://obregon.co/ - https://1server.co/
PHP 5.5+, nginx 1.7, MySQL(MariaDB & PerconaDB), PostgreSQL 9, Yii 2, CanJS
Follow me: @robregonm & @obregonco & @1ServerCo.
0

#6 User is offline   robregonm 

  • Expert Yii Developer
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 594
  • Joined: 30-July 09
  • Location:Colombia

Posted 28 February 2012 - 12:54 PM

Por cierto, he publicado la versión 0.8 que es compatible con la última versión de Yii y que aprovecha los bugs corregidos en PDO-Firebird de la version 5.3.10.
El link de descarga está en la página http://www.yiiframew...rebird-adapter/
Ricardo Obregón

YiiFramework en Español - http://yiiframework.co/ - http://yiiframeworkenespanol.org/ - Yii Code Generator for Bootstrap
http://obregon.co/ - https://1server.co/
PHP 5.5+, nginx 1.7, MySQL(MariaDB & PerconaDB), PostgreSQL 9, Yii 2, CanJS
Follow me: @robregonm & @obregonco & @1ServerCo.
0

#7 User is offline   agarcilazo 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 4
  • Joined: 07-April 12
  • Location:México D.F.

Posted 07 April 2012 - 04:03 PM

Hola, gracias, me gusta FB y quiero emplearlo en proyectos yii que apenas empiezo a conocer, baje tu adaptador pero tengo una seria duda, emkpleo un servidor apache que baje con el appserver para windows, trae php5 5.2.6 en tu documento pides php 5.3.4, pero la pagina de php solo veo PHP 5.3 (5.3.10) que estoy bajando ahora, esto implica que solo funcionaria bajo linux?
0

#8 User is offline   robregonm 

  • Expert Yii Developer
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 594
  • Joined: 30-July 09
  • Location:Colombia

Posted 10 April 2012 - 01:47 PM

Hola agarcilazo,
La verdad no lo he probado en Windows, y recomiendo la versión 5.3.10 porque trae varias mejoras y correcciones de bugs en el controlador PDO de Firebird (y el adaptador que publiqué asume que esos errores están corregidos).
Le recomiendo el uso de Wamp server: http://www.wampserver.com/en/
Wamp es uno de los paquetes de servidores más completos y actualizados que he encontrado para Windows.

Saludos y éxitos.
Ricardo Obregón

YiiFramework en Español - http://yiiframework.co/ - http://yiiframeworkenespanol.org/ - Yii Code Generator for Bootstrap
http://obregon.co/ - https://1server.co/
PHP 5.5+, nginx 1.7, MySQL(MariaDB & PerconaDB), PostgreSQL 9, Yii 2, CanJS
Follow me: @robregonm & @obregonco & @1ServerCo.
0

#9 User is offline   agarcilazo 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 4
  • Joined: 07-April 12
  • Location:México D.F.

Posted 11 April 2012 - 05:43 PM

Gracias !!, conforme avance te comentare mi experiencia
0

#10 User is offline   BotonInicio 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 29-May 12

Posted 29 May 2012 - 06:30 AM

Hola,
aunque hace algunas semanas de este post, intentaré lanzar aquí mi duda. Soy nuevo en yii y quiero hacer algunas pruebas con firebird, pero creo que estoy teniendo problemas con la "connectionString" que no sé como formatearla para una conexion a un servidor remoto, ¿sería algo así como 'connectionString'=>'firebird:nombrebd=servidor:c:\firebird\nombrebd.gdb'?. El caso es que al intentar ir al crud generator me lanza este error: "CDbConnection failed to open the DB connection: SQLSTATE[HY000] [335544323] file is not a valid database". La base de datos no está corrupta, está funcionando con delphi perfectamente.

(He seguido todos los pasos de configuración que hay aquí expuestos y tengo el pdo_firebird funcionando en php 5.3.10 en windows)
Gracias y un saludo,
0

#11 User is offline   BotonInicio 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 29-May 12

Posted 05 June 2012 - 11:30 AM

View PostBotonInicio, on 29 May 2012 - 06:30 AM, said:

Hola,
aunque hace algunas semanas de este post, intentaré lanzar aquí mi duda. Soy nuevo en yii y quiero hacer algunas pruebas con firebird, pero creo que estoy teniendo problemas con la "connectionString" que no sé como formatearla para una conexion a un servidor remoto, ¿sería algo así como 'connectionString'=>'firebird:nombrebd=servidor:c:\firebird\nombrebd.gdb'?. El caso es que al intentar ir al crud generator me lanza este error: "CDbConnection failed to open the DB connection: SQLSTATE[HY000] [335544323] file is not a valid database". La base de datos no está corrupta, está funcionando con delphi perfectamente.

(He seguido todos los pasos de configuración que hay aquí expuestos y tengo el pdo_firebird funcionando en php 5.3.10 en windows)
Gracias y un saludo,



Me respondo a mi mismo:
El problema estaba efectivamente en la connectionString que debe ser de esta forma: 'firebird:dbname=localhost:c:/firebird/BASEDATOS.gdb','emulatePrepare'=>true,'username'=>'SYSDBA', 'password'=> 'masterkey','attributes' => array(PDO::ATTR_CASE => PDO::CASE_LOWER,PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,PDO::ATTR_FETCH_TABLE_NAMES => FALSE) Fijate que las barras son las del 7 ...
0

#12 User is offline   bluyell 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 222
  • Joined: 28-October 11

Posted 05 June 2012 - 02:59 PM

firebird fue mi motor de datos usado en c++ por un monton de años, fabrique con el sistemas muy sobrecargados y corriendo bajo condiciones extremas 24x24x365 sin apagarse, a mi juicio, ni mysql en esa epoca era capaz de aguantar "el palo de agua".

hoy mysql es tan o mas robusto que firebird, pero no deja de ser una gran opción.

deberias publicar este avance en un wiki ! con sus instrucciones detalladas.

saludos y gracias por ayudar a este gran framework.
0

#13 User is offline   robregonm 

  • Expert Yii Developer
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 594
  • Joined: 30-July 09
  • Location:Colombia

Posted 06 June 2012 - 11:57 AM

@BotonInicio
Gracias por el aporte, creo que podríamos adicionar esos atributos al adaptador para que no haya que escribirlos sino que sea automático :)
Ricardo Obregón

YiiFramework en Español - http://yiiframework.co/ - http://yiiframeworkenespanol.org/ - Yii Code Generator for Bootstrap
http://obregon.co/ - https://1server.co/
PHP 5.5+, nginx 1.7, MySQL(MariaDB & PerconaDB), PostgreSQL 9, Yii 2, CanJS
Follow me: @robregonm & @obregonco & @1ServerCo.
0

#14 User is offline   robregonm 

  • Expert Yii Developer
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 594
  • Joined: 30-July 09
  • Location:Colombia

Posted 06 June 2012 - 12:01 PM

@bluyell
Christian, no es mala idea, aunque antes de hacer un wiki sería bueno terminar de probar y pulir el adaptador, pues he encontrado uno que otro bug en ciertas condiciones de ejecución, así que cuantos más desarrolladores y aportes tengamos, mejor aún.
Qué opinan tenerlo en github o bitbucket (generalmente me inclino más por este segundo)? Que generalmente significaría lo mismo que GIT o Mercurial/GIT...

Propuestas?
Ricardo Obregón

YiiFramework en Español - http://yiiframework.co/ - http://yiiframeworkenespanol.org/ - Yii Code Generator for Bootstrap
http://obregon.co/ - https://1server.co/
PHP 5.5+, nginx 1.7, MySQL(MariaDB & PerconaDB), PostgreSQL 9, Yii 2, CanJS
Follow me: @robregonm & @obregonco & @1ServerCo.
0

#15 User is offline   robregonm 

  • Expert Yii Developer
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 594
  • Joined: 30-July 09
  • Location:Colombia

Posted 06 June 2012 - 12:09 PM

He decidido crear un repositorio en github para este fin:
https://github.com/r...onm/YiiFirebird

Pronto cargaré la última versión del adaptador en el repositorio.

Aportes y pull requests son bienvenidos.
Ricardo Obregón

YiiFramework en Español - http://yiiframework.co/ - http://yiiframeworkenespanol.org/ - Yii Code Generator for Bootstrap
http://obregon.co/ - https://1server.co/
PHP 5.5+, nginx 1.7, MySQL(MariaDB & PerconaDB), PostgreSQL 9, Yii 2, CanJS
Follow me: @robregonm & @obregonco & @1ServerCo.
0

#16 User is offline   bluyell 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 222
  • Joined: 28-October 11

Posted 06 June 2012 - 12:17 PM

View Postrobregonm, on 06 June 2012 - 12:01 PM, said:

@bluyell
Christian, no es mala idea, aunque antes de hacer un wiki sería bueno terminar de probar y pulir el adaptador, pues he encontrado uno que otro bug en ciertas condiciones de ejecución, así que cuantos más desarrolladores y aportes tengamos, mejor aún.
Qué opinan tenerlo en github o bitbucket (generalmente me inclino más por este segundo)? Que generalmente significaría lo mismo que GIT o Mercurial/GIT...

Propuestas?


perfecto, yo voto por el github...es bien moderno y asi sera mas facil despues mover el asunto al git de yii...

por mi parte puedo aportar porque conozco firebird desde sus entrañas profundas..:!! cuando habia q usar el api de c++ para conectarse....y no como ahora con codigo q ya lo hace todo !! aquellos tiempos..
0

#17 User is offline   robregonm 

  • Expert Yii Developer
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 594
  • Joined: 30-July 09
  • Location:Colombia

Posted 06 June 2012 - 02:37 PM

@bluyell
Christian, Pull Requests son bienvenidas :) Creo que después de dos años de tantos cambios del adaptador para Firebird ya es hora de ponerlo a funcionar 100% y lanzar una versión 1.0 lista para producción.
Ricardo Obregón

YiiFramework en Español - http://yiiframework.co/ - http://yiiframeworkenespanol.org/ - Yii Code Generator for Bootstrap
http://obregon.co/ - https://1server.co/
PHP 5.5+, nginx 1.7, MySQL(MariaDB & PerconaDB), PostgreSQL 9, Yii 2, CanJS
Follow me: @robregonm & @obregonco & @1ServerCo.
0

#18 User is offline   bluyell 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 222
  • Joined: 28-October 11

Posted 08 June 2012 - 10:27 AM

perfecto ricardo, me gustaria participar, como nos organizamos, por donde empezamos.

voy a necesitar un tiempo para:

previo:
1-leer tu trabajo y entenderlo.
2-entender a fondo el mecanismo de yii para absorber una conexión, mysql, firebird etc.

posterior:
3-entender como incluir el nuevo adaptador en el sistema de yii
4-como manejar el tema de las versiones
5-empezar por algo simple pero util:
5.1-conectarse al sistema de datos fierbird.
5.2-abrir una transaccion.
5.3-parametrizar una consulta. (sino el server consumira ram hasta explotar, no se si esto fue reparado por firebird en sus nuevas versiones, las cuales desconozco)
5.4-ejecutar una consulta de no retorno de resultados.
5.6-ejecutar una consulta con retorno de resultados.
6-documentacion del trabajo. (formato de codigo, archivos MD, reglas de codificacion)

por ahi van los tiros
0

#19 User is offline   IRCSASW 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 63
  • Joined: 01-September 11
  • Location:Cancún, México.

Posted 31 July 2012 - 11:38 PM

Ok, ya me toca hacer pruebas de esto...

He seguido las instrucciones para actualizar los archivos de Yii pero no he podido conectarme a la base de datos.

Vi la propuesta de la cadena de conexión pero no se si la estoy aplicando bien.

en protected/config/main.php
'db'=>array(
  'connectionString' => 'firebird:dbname=localhost:C:/xampp/htdocs/firebird/protected/data/ISIMA.FDB',
  'emulatePrepare'=>true,
  'username'=>'SYSDBA', 
  'password'=> 'masterkey',
  'attributes' => array(
    PDO::ATTR_CASE => PDO::CASE_LOWER,
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_FETCH_TABLE_NAMES => FALSE,
  ),
),


quiero tener la base de datos dentro de protected/data como esta la que va con Yii de SQLite, intente también con:
'connectionString' => 'firebird:dbname=localhost:'.dirname(__FILE__).'/../data/ISIMA.FDB', ...


O, dónde sería el mejor lugar para la base de datos?

Al tratar de ejecutar Gii (http://localhost/fir...php?r=gii/model) recibo este error:
CDbConnection failed to open the DB connection: could not find driver


Ya me acostumbre a manejar la carpeta del framework en la misma carpeta del proyecto, esta es la estructura de carpetas de la aplicación:
htdocs
... firebird
... ... assets
... ... css
... ... framework
... ... images
... ... protected
... ... themes
... ... index.php


Que me falta?, dónde estoy mal ?

Gracias, saludos.
Arturo Ramos
www.ircsasoftware.com.mx
Cancún, México
0

#20 User is offline   robregonm 

  • Expert Yii Developer
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 594
  • Joined: 30-July 09
  • Location:Colombia

Posted 01 August 2012 - 08:21 AM

Hola Arturo,
Hay varias verificaciones adicionales que sería bueno realizar:
1. ¿Está cargada la extensión pdo_firefird? Este es el driver que realmente permite la conexión a la base de datos
2. Está la DLL o SO para clientes de firebird? Por ejemplo, en mi distro es el paquete "libfbclient"
3. ¿Está usando mínimo PHP 5.3.10? Esta versión incluye varias mejoras y correciones para Firebird que son consideradas (y asumidas) en la extensión de Firebird para Yii.

Espero que le sirva.

Saludos, éxitos y bendiciones.
Ricardo Obregón

YiiFramework en Español - http://yiiframework.co/ - http://yiiframeworkenespanol.org/ - Yii Code Generator for Bootstrap
http://obregon.co/ - https://1server.co/
PHP 5.5+, nginx 1.7, MySQL(MariaDB & PerconaDB), PostgreSQL 9, Yii 2, CanJS
Follow me: @robregonm & @obregonco & @1ServerCo.
0

Share this topic:


  • (2 Pages)
  • +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users