Esa consulta la corro directamente sobre firebird y funciona bien osea que error de firebird no es, y con el resultado que envía se nota que el valor de "TableName" llega bien, por lo cual yo me centraría en buscr el error por los componentes ZeoMDO, de pronto hace alguna validación en la estructura del query y no soporta hacer consultas en tablas del sistema en firebird... Por curiosidad, la consulta:
Código SQL
[-]
SELECT COUNT(*) AS existe
FROM rdb$relations WHERE rdb$relation_name = 'MITABLA'
AND rdb$view_blr is null
AND (rdb$system_flag is null OR rdb$system_flag=0);
Prueba a quitar el ";" del final, el componente no debe de necesitarlo al final y de pronto saca erro por tenerlo..
Respecto a usar Nombres de campos o de tablas en mayúsculas o minúsculas puede hacerlo desde comandos encerrando el nombre de la tabla o el campo entre comilla doble, aunque es muy dispendioso hacerlo así ya que de ahí en adeltante deberá hacer las consultas de esa misma forma. ejemplo:
Código SQL
[-]
Create Table "Tabla1"....
....
....
select "Campo1" from "Tabla1"