Hola:
Tengo un problemita, no puedo configurar datos_tabla , en una base de datos con varios esquemas, los genero, pero al tratar de crear algun cuadro, me dice que la tabla no existe en el esquema, porque me toma como default el public, y no encuentro donde cambiar eso, desde ya muchas gracias por la ayuda…
Hola Jose,
lo primero que debes hacer para configurar un DT de esta manera, es agregar a la fuente de datos todos los schemas que vas a estar usando en ella. Esto se hace desde la segunda pestaña de la operacion de edicion de las fuentes. En la primer imagen se ve la lista de schemas disponibles, en dicho campo debes seleccionar todos los que vayas a usar y luego marcas uno por defecto en el campo inferior.
Por otro lado, en la operacion de edicion del DT… existe un campo para seleccionar el schema sobre el cual va a operar dicho datos tabla. Fijate que en la segunda imagen te lo marco, el tema es que dicho campo toma las opciones que marcaste en la definicion de la fuente de datos, asi que si te falto el primer paso… alli solamente vas a ver el esquema por defecto.
Cualquier cosa avisame… pero creo que con esto te sale seguro.
Saludos
Hola, diculpa la demora en contestar, es que deje por un tiempo de desarrollar, estuve viendo lo que me indicaste, voy a probar, muchas gracias…
Hola gente.
Richard, te comento que tengo el mismo problema, pero es una cosa rarísima.
Se trata de un abm simple, con un solo DT.
Falla el método cargar().
Lo curioso es lo siguiente, ejecutándolo desde el localhost en que se desarrolló, funciona perfectamente, pero, en otro equipo da el error de que no encuentra la tabla.
Verifiqué todo y está tal como le indicás a jltabbia.
No sé que puede ser.
Abrazo.
Hola Claudio,
tiene permisos el usuario con el que corre Toba para acceder a ese schema en la otra maquina?
Saludos
Hola Richard. Mirá, no creo que ese sea el proble por los siguientes motivos:
- La fuente de datos que opera desde el localhost (pc) apunta a la misma base de datos postgres y no tiene problemas.
- Cuando el proyecto es arrancado desde el servidor.
a) Accede perfectamente con el método consultar() y en la sentencia SELECT se hace referencia al esquema donde está la tabla
b) Sincroniza sin problemas cuando el DT tiene datos introducidos con el método nueva_fila()
c) Falla el método cargar(). Cuando te muestra, en el visor de logs, la select que falla, esta no hace referencia al esquema.
Me fijé en las apex si no tenía cargado el campo donde se especifica el esquema de DT, y este está correctamente guardado.
Voy a investigar por el lado de la seguridad, a ver si es eso, pero no creo (hoy es domingo)
Un abrazo, y gracias por tu atención.
Hola Claudio,
osea que ejecutando la operacion desde la misma maquina funciona perfectamente pero no desde una ubicacion remota?.
2) Cuando el proyecto es arrancado desde el servidor. a) Accede perfectamente con el método consultar() y en la sentencia SELECT se hace referencia al esquema donde está la tabla b) Sincroniza sin problemas cuando el DT tiene datos introducidos con el método nueva_fila() c) Falla el método cargar(). Cuando te muestra, en el visor de logs, la select que falla, esta no hace referencia al esquema.
Te hago una consulta extra, cuando sincroniza con la tabla, incluye correctamente el schema en las sentencias?
Me fijé en las apex si no tenía cargado el campo donde se especifica el esquema de DT, y este está correctamente guardado.
Ok, en ese caso… la SQL de carga la genera el DT o se le pasa explicitamente?
Saludos
Rebobinemos estimado.
Los datos están en un servidor de pruebas, llamémoslo xxx, que también aloja un Toba para probar todo integralmente desde la red de usuarios.
Uno de mis coequipers desarrolla, en su propia máquina (localhost), con su propio Toba , la operación en cuestión. La fuente de datos que usa apunta al postgres del servidor xxx. Esta forma, no falla.
Cuando ya tiene la operación ok. Exporta los metadatos y se regenera, en el servidor xxx, para que puedan probarla otros usuarios. Llegados a este punto tanto el proyecto como el postgres están en el servidor xxx. La fuente de datos es la misma.
Aquí es donde falla el método invocado con $this.dep(‘dt_mi_tabla’)->cargar($seleccion). El mensaje es que no encuentra la tabla asociada.
Pero, si insertamos un registro de la forma $this.dep(‘dt_mi_tabla’)->nueva_fila($datos) y sincronizamos, la sincronización funciona perfectamente.
Lo que me despista es ¿Por qué no encuentra la tabla al querer cargarla y sí la encuentra al sincronizar?.
La fuente de datos tiene como default un esquema que no es el public. El esquema public está en la lista de esquemas que usa la fuente.
La tabla está ubicada en el esquema public, y esto está especificado en los datos generales del DT, ya que, por otro lado, si no se pone este dato no se puede seleccionar la tabla asociada al DT.
En ningún momento le suministramos al DT consulta explícita alguna.
La única consulta explícita es la que carga el cuadro que muestra el contenido de la tabla (NO del DT) en la configuración del mismo.
Es un abm muy simple, una tablita de 3 campos.
Hasta luegooo.
Hola Claudio,
bien, te habia entendido justamente al reves, disculpa… habia agarrado para el lado de los tomates jajajaja.
Aquí es donde falla el método invocado con $this.dep('dt_mi_tabla')->cargar($seleccion). El mensaje es que no encuentra la tabla asociada. Pero, si insertamos un registro de la forma $this.dep('dt_mi_tabla')->nueva_fila($datos) y sincronizamos, la sincronización funciona perfectamente.Lo que me despista es ¿Por qué no encuentra la tabla al querer cargarla y sí la encuentra al sincronizar?.
Esto es lo que no me cierra, porque el metodo que califica la tabla es exactamente el mismo tanto en el cargar como en el sincronizar. Lo unico que podria hacer que se comporte distinto, es que entre medio de ambos puntos se hiciera un set_schema al persistidor del DT, cosa que no encontre se estuviera haciendo.
Lo unico que se me habia ocurrido, es que si el DT tiene el Defecto Fuente como schema, no califica la tabla y por ende asume el schema que tiene la conexion (que en este caso seria otro)… pero en ese caso, fallaria igualmente la sincronizacion al querer guardar.
La fuente de datos tiene como default un esquema que no es el public. El esquema public está en la lista de esquemas que usa la fuente. La tabla está ubicada en el esquema public, y esto está especificado en los datos generales del DT, ya que, por otro lado, si no se pone este dato no se puede seleccionar la tabla asociada al DT.
Claro, es lo que me corrio de la linea de pensamiento anterior, que explicitamente el DT tiene asignado el esquema public y por tanto la tabla debe calificarse siempre.
No hay muchas cosas que pudieran estar distintas entre ambas maquinas, una podria ser la configuracion de la fuente de datos… pero es algo facilmente notable, lo otro es que el codigo de toba sea distinto en ambas instalaciones y una de las dos tenga el bug resuelto, ojo con esto que puede ser factible. Si tenes a mano la revision de toba en el servidor, que es donde falla, vendria genial para verificar si se cambio algo luego de esa revision de svn.
Saludos
Richard, decime donde busco que revisión es, o si querés algún archivo.
Gracias
Hola Claudio,
con un svn info podes obtener el nro de revision actual, sino queres hacer un update por si las moscas. Sino al hacer el update te dice en que revision te deja la WC.
Saludos