Efectivamente no hay que poner el active a true al hacer un insert.
Por el código que mandas yo lo veo bien. Sólo que no he usado nunca un clear de los parámetros, ya que siempre me suelo asegurar de que tendrán un valor.
Lo que te aconsejo es que:
1º - prueba a quitar el parambyname.clear a ver que tal. No sea cosa que fuera por eso, no lo sé.
2º - si aún así no se te ha arreglado, pon un breakpoint en la linea del SQL.Clear y ves paso a paso con F8 y ponte encima de todos los parámetros que le mandas a ver si son todos correcto, no sea que alguno esté mal.
Espero te sirva
Saludos