Ver Mensaje Individual
  #15  
Antiguo 01-11-2011
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Reputación: 21
RONPABLO Va por buen camino
Cita:
Empezado por salvica Ver Mensaje
Hola de nuevo RONPABLO, te estoy dando la noche

Son dos cosas diferentes:
  • El error de excepción: Me lo dá cuando hago el Open en la ZQuery de ZeosDBO.
Si elimino a "mano" la tabla y en el código del programa quito la línea que comprueba la existencia de la tabla, el mismo ZQuery efectúa un CREATE TABLE mitabla sin problemas, con lo que (inicialmente), la conexión es correcta, el enlace del ZQuery con el ZConnection es correcto y el ZQuery trabaja como se espera.

Has mirado si hay una versión más nueva de los componentes, puede que con actualizarlos se arreglen.


Cita:
Empezado por salvica Ver Mensaje

Lo de las mayúsculas: Otro cantar, que no sé si es por el manejador FlameRobin que viene con Firebird o qué.
Por ejemplo, yo creo una tabla:
Código SQL [-] with ZQuery do begin SQL.Clear; SQL.Add( 'CREATE TABLE mitabla (' ); SQL.Add( ' NUM_REG INTEGER NOT NULL,' ); SQL.Add( ' ID_CLAVE CHAR(8) NOT NULL,' ); SQL.Add( ' CORRECTO CHAR(1) DEFAULT ''0'' NOT NULL,' ); SQL.Add( ' TEXTO VARCHAR(80)' ); SQL.Add( ');' ); SQL.SaveToFile( PathSql+'\SQL_CrearTabla_mitabla.sql'); try ExecSQL; except SQL.SaveToFile( PathSql+'\ERROR_SQL_CrearTabla_mitabla.sql'); end; Close; { cerrar la tabla por si queda abierta } end; { del with ZQuery do }


Esto funciona sin problemas , ahora voy al FlameRobin (gratis) o al SQL Maestro for Firebird (de pago, pero bastante bueno, yo lo uso con SQLite) y ejecuto la consulta
Código SQL [-]SELECT COUNT(*) AS existe FROM rdb$relations WHERE rdb$relation_name = 'MITABLA'

El campo EXISTE vale UNO (1), ha encontrado la tabla creada.

Si cambio la consulta por:
Código SQL [-] SELECT COUNT(*) AS existe FROM rdb$relations WHERE rdb$relation_name = 'mitabla'

El campo EXISTE vale CERO (0), no ha encontrado la tabla creada.
Esto si que es un "rollo"

Saludos
salvica
Es curioso, para mi ese es el funcionamiento que debe de tener una consulta, el identificar la diferencia entre mayúsculas y minúsculas es lo que me espero en un "Where Campo = 'Valor', ahora si la consulta solo la construye una sola vez y la llama muchas veces mandando el nombre de la tabla como parametro entoces podría hacer el Upper en la consulta y no en el código Delphi y así no se va a llenar de UpperCase, ya si la consulta la construye siempre pues esto sería casi igual.
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita