Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Ambiguos consulta en firebird (https://www.clubdelphi.com/foros/showthread.php?t=8146)

fidias 10-03-2004 11:49:56

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.

guillotmarc 10-03-2004 14:16:48

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.

guillotmarc 10-03-2004 14:36:14

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.

fidias 10-03-2004 16:07:56

Muchas gracias, era lo que me temia.


La franja horaria es GMT +2. Ahora son las 00:32:41.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi