Algun campo esta mal definido o una variable no tiene el tipo de dato correcto, me hace pensar que el error te lo manda porque estas intentado almacenar un dato de tipo string en un campo numérico o vicerversa....checa eso !. Puede ser que por ahi este la solución.
Por cierto...si necesitamos mas información, ejemplo:
LOS CAMPOS DE LA TABLA, DE QUE TIPO DE DATOS SON?
Y como dice Casimiro....mas información, asi solamente estaremos especulando por donde te da el error.
Observando tus datos:
Código Delphi
[-]
ParamByName('p2').AsString:=Cuenta;
ParamByName('p3').AsString:=Clave;
"Cuenta" y "Clave", con numéricos? o son de tipo String?
Saludos.