Hola me alegro que funcione!
Bueno en cuanto a lo que comentas,lamento desilusionarte, pero si,
tiene varias limitaciones. Como te decia, las relaciones entre modelos
no funcionan. Se puede lidiar con eso y recuperar la misma info usando
los modelos por separado, pero es un poco incomodo.
Con lo de ABM quiero decir ALTAS, BAJAS y MODIFICACIONES, lo que es
equivalente a insert, delete y update en sql. Hasta aca me funciono
sin problemas, pero no hice ningun testeo intensivo. Habria que ver
que pasa con campos tipo DATE o alguna cosa rara que pueda complicar
al guardar.
En cuanto a las mejoras que se puedan hacer, son todas bienvenidas!.
Yo no avance mucho mas, ya que lo que necesite en su momento lo pude
resolver con esto. Aclaro que no soy ningun experto en cake, pero si
hay interes por mejorarlo estoy dispuesto a ayudar en todo lo que
pueda. Creo que lo bueno seria tener mas info sobre las bases del
funcionamiento del dbo_source.php de cake y mejorar el dbo_informix
pero ya para cake 1.2 . Yo no supe muy bien donde obtener
documentacion tecnica de cake. El driver lo hice investigando el
codigo y copiando mas o menos el que viene para mysql, pero
lamentablemente, si bien informix es un gestor con mayúsculas, no
tiene las facilidades de mysql, por lo que las cosas son mas
dificilies.
Una consideracion mas: Si usas el metodo query con algo similar a esto
$R = $this->Testifxuser->query("SELECT * FROM testifxusers u,
testifxarticles a WHERE u.id = a.testifxuser_id");
pr($R);
vas a tener un resultado similar a
Array
(
[0] => Array
(
[] => Array
(
[id] => 941
[cuenta] => test_1_10-09-07 20:5
[fullname] => User_1
[nroemp] => 1
[testifxuser_id] => 312
[titulo] => art_1
[texto] => texto texto texto texto texto texto
texto texto texto texto texto texto texto
)
)
[1] => Array
(
[] => Array
(
[id] => 942
[cuenta] => test_1_10-09-07 20:5
....
Veras que hay un indice vacio, con lo que para acceder por ejemplo al
primer elemento seria algo asi:
$record = $R[0][''];
Lo lógico (y asi lo haria cake con mysql) seria que el segundo indice
fuera el nombre de la tabla, pero parece que con informix no es tan
facil saber de que tabla salio cada uno de los campos que devolvio la
consulta.
Si alguien encuentra una solucion a esto, entonces posiblemente lo de
las relaciones entre modelos funcione, ya que creo que el problema
viene por ahi.
De todas formas espero que aunque con limitaciones el driver sea de
utilidad!
Saludos.
On 11 sep, 04:09, superbully <[EMAIL PROTECTED]> wrote:
> Muchas gracias !!!!!!!!!!!
> Ya me funciona perfectamente !!!!!!!!!!!!!!! Es maravilloso !!!!!!!!!!
> Ahora mismo me pongo a desarrollar mi aplicación ! Espero que no tenga
> muchas limitaciones este plugin con respecto a los otros. En el posto
> de arriba creo que mencionas que no funcionan las relaciones, me
> gustaría que me confirmases que no se puede realizar ningún tipo de
> relación . A que te refieres cuando dices que se pueden hacer ' ABMs
> sin problemas ' ?? Si tienes pendiente agregar alguna funcionalidad al
> plugin que ahora no tiene o mejorar algunas de las que ya tiene puedes
> contar conmigo para lo que quieres (tengo conocimientos de php pero
> con el framework cake no llevo mucho tiempo ).
> MUCHAS GRACIAS Y UN SALUDO !!!
>
> On 11 sep, 02:11, diego <[EMAIL PROTECTED]> wrote:
>
> > Hola, prove con la version que vos tenes. La verdad es que las cosas
> > cambian bastante entre versiones. En resumen, intente arreglarlo pero
> > no es tan facil. Te mande por mail la carpeta cake que tengo con la
> > version que use. Remplazala por la carpeta cake de la instalacion
> > que tengas y todo deberia funcionar. Ya va incluido el dbo informix!.
> > Saludos.
> > Diego.
>
> > On 10 sep, 04:24, superbully <[EMAIL PROTECTED]> wrote:
>
> > > Hola !!
> > > Muchas gracias por ayudarme y compartir tus experiencias con todo el
> > > grupo. He probado el driver que has colgado en el directorio archivos
> > > del grupo, he configurado la archivo database.php como indicas en el
> > > post. Me creo un modelo y un controlador de prueba que intenta obtener
> > > todos los registro del modelo:
> > > function index() { $data=$this->Articulo->findAll(); $this->set('data',
> > > $data); }
>
> > > y obtengo el siguiente error:
> > > Warning: substr_count() [function.substr-count]: Empty
> > > substring. in /var/www/html/cake2/cake/libs/model/datasources/
> > > dbo_source.php on line 354
> > > Warning: substr_count() [function.substr-count]: Empty
> > > substring. in /var/www/html/cake2/cake/libs/model/datasources/
> > > dbo_source.php on line 354
> > > Warning: substr_count() [function.substr-count]: Empty substring.
> > > in /var/www/html/cake2/cake/libs/model/datasources/dbo_source.php on
> > > line 354
> > > Warning: substr_count() [function.substr-count]: Empty substring.
> > > in /var/www/html/cake2/cake/libs/model/datasources/dbo_source.php on
> > > line 354
> > > Fatal error: Unsupported operand types in /var/www/html/cake2/cake/
> > > libs/model/dbo/dbo_informix.php on line 469
>
> > > Ahora si que tengo acceso a las tablas, porque he probado a utilizar
> > > una tabla que no existe y me da el error de que no encuentra la tabla.
> > > El problema parece que está en la obtención de los datos de la tabla.
> > > Las pruebas las estoy haciendo con la version de cake 1.1.17.5612.
> > > Sabes a que es debido esos errores ??
> > > Donde puedo conseguir la 1.1.4.3104 que es la que utilizas tú ??
> > > MUCHAS GRACIAS Y UN SALUDO !!!
>
> > > On 7 sep, 23:06, diego <[EMAIL PROTECTED]> wrote:
>
> > > > Hola!, te comento que me encontré mas o menos los mismos problemas y
> > > > finalmente me decidí por dejar ADOdb y escribir un DBO para informix.
> > > > Lo acabo de subir en los archivos del grupo. Para cosas simples
> > > > funciona muy bien. No te van a funcionar las relaciones, pero se
> > > > pueden hacer ABMs sin problemas.
> > > > Algunas consideraciones:
> > > > * Yo lo probe con cake 1.1.4.3104. Con la versión 1.2 no me funcionó.
> > > > * Yo estoy usando una versión 7 de informix, pero supongo que deberia
> > > > funcionar con una 9 o 10.
> > > > * No funcionana las relaciones.
> > > > * El limit esta simulado, ya que hasta donde se informix tiene un
> > > > FIRST pero nada parecido al LIMIT n,n de MySql.
>
> > > > Para usarlo hay que poner el archivo "dbo_informix.php" en cake/libs/
> > > > model/dbo/ y la configuración en la base seria mas o menos asi:
>
> > > > var $default = array( 'driver' => 'informix',
> > > > 'connect' =>
> > > > 'ifx_connect',
> > > > 'host' =>
> > > > 'localhost',
> > > > 'login' =>
> > > > 'userxxx',
> > > > 'password' =>
> > > > 'passxxx',
> > > > 'database' =>
> > > > 'databasename',
> > > > 'prefix' => '');
>
> > > > Bueno espero sirva para algo. Cualquier mejora o aporte es
> > > > bienvenido!
> > > > Saludos,
> > > > Diego.
>
> > > > On 7 sep, 09:49, superbully <[EMAIL PROTECTED]> wrote:
>
> > > > > On 6 sep, 17:40, AD7six <[EMAIL PROTECTED]> wrote:
>
> > > > > > On Sep 6, 5:34 pm, AD7six <[EMAIL PROTECTED]> wrote:
> > > > > > <snip>
> > > > > > Una cosa comprueba si el usuario del base de datos tiene derechos
> > > > > > para
> > > > > > hacer SHOW TABLES (o la equivalente).
>
> > > > > > Saludos,
>
> > > > > > AD
>
> > > > > Hola !! El comando SHOW TABLES no me da nada. Me da un error es como
> > > > > si no existiera en informix. Si pongo lo que me has dicho tú en el
> > > > > metodo setSource:
> > > > > pr($db->listSources()); die;
> > > > > Veo un array con todas las tablas de la base de datos. Pero no veo
> > > > > las tablas del propietario 'informix', entonces he modificado la
> > > > > variable $metaTablesSQL del driver de informix de adodb.
> > > > > original:var $metaTablesSQL="select tabname,tabtype from systables
> > > > > where tabtype in ('T','V') and owner!='informix'"; //Don't get
> > > > > informix tables and pseudo-tables
>
> > > > > modificado:var $metaTablesSQL="select tabname,tabtype from systables
> > > > > where tabtype in ('T','V') "; //Don't get pseudo-tables
>
> > > > > Entonces cuando ejecuto el controlador de nuevo ya veo todas las
> > > > > tablas.
> > > > > Ahora comento esa linea en el metodo setSource y debería de funcionar
> > > > > todo, porque cake ya tiene acceso a todas las tablas del propieatario
> > > > > informix. Me creo la funcion index() en el controlador como sigue:
>
> > > > > function index()
> > > > > {
>
> > > > > $data=$this->Articulo->findAll();
> > > > > $this->set('data',$data);
> > > > > }
>
> > > > > Me creo la vista para ese controlado y cuando intento acceder obtengo
> > > > > el siguiente error:
> > > > > Fatal error: Call to a member function MetaType() on a non-object in /
> > > > > var/www/html/cake2/cake/libs/model/dbo/dbo_adodb.php on line 298
>
> > > > > Si añado al archivo de configuracion database.php la variable
> > > > > 'prefix' => 'informix.' para indicar al cake que utilizo el esquema de
> > > > > informix, obtengo el siguiente error:
> > > > > No Database table for model Articulo (expected "informix.articulos"),
> > > > > create it first.
>
> > > > > Lo que es lo mismo, que estoy igual !!!!! Ya no sé que hacer ni que
> > > > > probar !!!!
> > > > > MUCHAS GRACIAS POR ADELANTADO !!!! UN SALUDO A TODOS LOS MIEMBROS DEL
> > > > > GRUPO !!!!
--~--~---------~--~----~------------~-------~--~----~
Has recibido este mensaje porque estás suscrito a Grupo "CakePHP-es" de Grupos
de Google.
Si quieres publicar en este grupo, envía un mensaje de correo
electrónico a [email protected]
Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED]
Para obtener más opciones, visita este grupo en
http://groups.google.com/group/CakePHP-es?hl=es.
-~----------~----~----~----~------~----~------~--~---