FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Ambiguos consulta en firebird
Hola,
utilizo IBX 5.0.4 en delphi 5 (update pack 1) y con Interbase 6.0.2 y dialecto 3. Hasta ahora no nemos tenido problemas de conexión ni de rapidez, los hemos ido solucionando con cambios de extension de la gdb, con backup/restore/gfix, y cosas asi, pero tenemos un cliente en el que el servidor de Interbase se encuentra en un Windows 2003, y la conexión cuesta bastante mas de 30 segs (conectamos con la estructura ipservidor:ruta_gdb). Hemos probado Firebird 1.0,1.0.2 y 1.0.3 y con todos tenemos el mismo problema: - no reconoce f_1 como campo valido obtenido de una consulta del tipo select count(*) from cliente donde f_1 lo crea delphi a partir del objeto TQuery - tambien tengo problemas en todas aquellas consultas que cruzan dos o mas tablas, y no uso alias para nombrarlas, me dice "ambiguous query" y en Interbase no me decia nada, tb pq solo usamos los alias cuando hay campos clave primaria que se llaman igual y puede dar lugar a confusión. Tengo alguna solución que no sea reescribir todas las consultas de mi aplicación (hay muchiiiiisiiiimas) Gracias. |
#2
|
||||
|
||||
Como comentas, parece que solo tienes dos soluciones.
A) Actualizar a Interbase 7, y seguir utilizando el Interbase de Borland, que seguramente mantendrá la compatibilidad con las consultas que tienes. B) Cambiar a Firebird, y escribir bien las consultas. En el primer caso debes cambiarlas por : select count(*) as f_1 from cliente. Y en las consultas con ambiguedades habrá que poner los Alias. Si decides cambiar a Firebird, seria una buena idea mirar para el futuro otros componentes de acceso en lugar de los IBX. Puesto que los IBX són de Borland y no van a soportar las nuevas caracteristicas de Firebird. Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#3
|
||||
|
||||
Por cierto, en las consultas con select count(*) from cliente ¿ has creado campos persistentes ?.
Porqué si no has creado campos persistentes, entonces te funcionará mantener la consulta como está y simplemente cambiar el código del programa. Donde tengas : qryDatos.FieldValues['f_1'], cambialo por qryDatos.Fields[0].Value Puedes hacer un buscar y reemplazar en todo el proyecto de FieldValues['f_1'] por Fields[0].Value Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#4
|
|||
|
|||
Muchas gracias, era lo que me temia.
|
|
|
|