no conozco a fondo la librería FoxyDB pero para Firebird debes tomar en cuenta que las constantes tipo string se encierran en comillas simples
para lo cual si desde VFP intentas hacer una sentencia SQL para envíar luego a FB debes usar o bien TEXT ENDTEXT o bien comillas dobles o bien corchetes [] como delimitadores externos.
TEXT TO cSQL NOSHOW PRETEXT 7
SELECT * FROM CLIENTES WHERE NOMBRE = 'JOSE' AND APELLIDO = 'PEREZ'
ENDTEXT
o
cSQL = " SELECT * FROM CLIENTES WHERE NOMBRE = 'JOSE' AND APELLIDO = 'PEREZ' "
o
cSQL = [ SELECT * FROM CLIENTES WHERE NOMBRE = 'JOSE' AND APELLIDO = 'PEREZ' ]
A su vez para el caso de que tu sentencia tenga una constante string con apóstrofe como el apellido D'onofrio sería
cSQL = [ SELECT * FROM CLIENTES WHERE NOMBRE = 'JOSE' AND APELLIDO = 'D''ONOFRIO' ]
o sea se repite la comilla simple dos veces.
Otro tema es que al definir elementos de la base de datos como ser nombre de Tablas o Campos en FB se permite usar identificadores especiales encerrados entre comillas dobles.
Esto brinda tener un tablas/campos que coincidan con alguna palabra reservada de FB o usar acentos o espacios en blanco o mezclar minúsculas y mayúsculas.
Luego al usar estos identificadores en una sentencia los debes poner entre comillas dobles respetando tal cual ha sido definido
por ejemplo:
CREATE TABLE "MIS CLIENTES" ( "MI ID" integer, "Apellido" Character(50), "es único" CHAR(1))
cSQL = [SELECT * FROM "MIS CLIENTES" WHERE "Apellido" = 'PEREZ']
como se ve en el último ejemplo para encerrar la sentencia en una sola línea solo queda corchete o TEXT ENDTEXT
El tema es si en alguna constante string de la sentencia entra los caracteres corchete!
conclusión
Para delimitar string en VFP para enviar sentencias a FB conviene usar TEXT ENDTEXT o si hay caracteres que coincidan con delimitadores usar CHR(...) en string concatenado.
Saludos