Buenas,
Alguna vez me tope con el uso de parámetros opcionales en Firebird, si te interesa lo resolví con un coalesce (la función puede llamarse diferente según el motor que utilices, pero vale como idea):
http://www.clubdelphi.com/foros/showthread.php?t=9207
PD: Me quedó la duda de cuál era el error.
Saludos