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.
- 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