Ya he intentado mil formas, solo cambie esa linea, las demás están igual, le asigne ese valor para probar, pero me sigue generando error:
Código Delphi
[-] if ADOQuery1.Active then
ADOQuery1.Close;
ADOQuery1.SQL.Text :=
' INSERT INTO factura (cantfactu,subtfactu,ivafactu,totalfactu,horafactu,idclientef,idpagof,iduserf )' +
' VALUES (:cantfactu, :subtfactu, :ivafactu, :totalfactu, :horafactu, :idclientef, :idpagof, :iduserF )';
ADOQuery1.Parameters.ParamByName('cantfactu').DataType := ftinteger;
ADOQuery1.Parameters.ParamByName('cantfactu').Value := 1;
ADOQuery1.Parameters.ParamByName('subtfactu').DataType := ftfloat;
ADOQuery1.Parameters.ParamByName('subtfactu').Value := cant;
ADOQuery1.Parameters.ParamByName('ivafactu').DataType := ftfloat;
ADOQuery1.Parameters.ParamByName('ivafactu').Value := iva;
ADOQuery1.Parameters.ParamByName('totalfactu').DataType := ftfloat;
ADOQuery1.Parameters.ParamByName('totalfactu').Value := total;
ADOQuery1.Parameters.ParamByName('horafactu').DataType := ftDateTime;
ADOQuery1.Parameters.ParamByName('horafactu').Value := Mfechahora;
ADOQuery1.Parameters.ParamByName('idclientef').DataType := ftstring;
ADOQuery1.Parameters.ParamByName('idclientef').Value := form2.edtcedula.Text;
ADOQuery1.Parameters.ParamByName('idpagof').DataType := ftinteger;
ADOQuery1.Parameters.ParamByName('idpagof').Value := tpago;
ADOQuery1.Parameters.ParamByName('iduserF').DataType := ftinteger;
ADOQuery1.Parameters.ParamByName('iduserF').Value := 1;
ADOQuery1.ExecSQL;
end;