Investigando encontre una forma de arreglar un poco mi SP
Código SQL
[-]-- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `acta_alta`(
in p_actanum int,
in p_actaserie varchar(2),
in p_actafecha Date,
in p_actahora varchar (5),
in p_offdni int,
in p_empresaid int,
in var1 int,
in var2 int,
in var3 int,
in var4 int,
in var5 int,
in var6 int,
in var7 int,
in var8 int,
in var9 int,
in var10 int,
in p_vehicledom varchar (45),
in p_lugarid int,
in p_actanumcalle varchar (45),
in p_causanum int,
in p_causafecha date,
in p_usu int
)
BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
SELECT 1 as error;
ROLLBACK;
END;
DECLARE EXIT HANDLER FOR SQLWARNING
BEGIN
SELECT 1 as error;
ROLLBACK;
END;
START TRANSACTION;
INSERT INTO acta (actanum, actaserie, actafecha, actahora, actanumcalle, offdni, empresa_id, vehicledom, lugar_id, causanum, causafecha)
VALUES (p_actanum, p_actaserie, p_actafecha, p_actahora, p_actanumcalle, p_offdni, p_empresaid, p_vehicledom, p_lugarid, p_causanum, p_causafecha);
if var1 >0 then
INSERT INTO actabreach (actanum, actaserie, breach_id)
VALUES (p_actanum, p_actaserie, var1);
end if;
if var2 >0 then
INSERT INTO actabreach (actanum, actaserie, breach_id)
VALUES (p_actanum, p_actaserie, var2);
end if;
if var3 >0 then
INSERT INTO actabreach (actanum, actaserie, breach_id)
VALUES (p_actanum, p_actaserie, var3);
end if;
if var4 >0 then
INSERT INTO actabreach (actanum, actaserie, breach_id)
VALUES (p_actanum, p_actaserie, var4);
end if;
if var5 >0 then
INSERT INTO actabreach (actanum, actaserie, breach_id)
VALUES (p_actanum, p_actaserie, var5);
end if;
if var6 >0 then
INSERT INTO actabreach (actanum, actaserie, breach_id)
VALUES (p_actanum, p_actaserie, var6);
end if;
if var7 >0 then
INSERT INTO actabreach (actanum, actaserie, breach_id)
VALUES (p_actanum, p_actaserie, var7);
end if;
if var8 >0 then
INSERT INTO actabreach (actanum, actaserie, breach_id)
VALUES (p_actanum, p_actaserie, var8);
end if;
if var9 >0 then
INSERT INTO actabreach (actanum, actaserie, breach_id)
VALUES (p_actanum, p_actaserie, var9);
end if;
if var10 >0 then
INSERT INTO actabreach (actanum, actaserie, breach_id)
VALUES (p_actanum, p_actaserie, var10);
end if;
INSERT INTO causa (causanum, causafecha)
VALUES (p_causanum, p_causafecha);
INSERT INTO audit_acta (tipoact, actanum_new, actaserie_new, actafecha_new, actahora_new, usu_id, fecha, hora)
VALUES ('I', p_actanum, p_actaserie, p_actafecha, p_actahora, p_usu, CURRENT_DATE(), CURRENT_TIME());
COMMIT;
SELECT 0 as error;
END
En delphi capturo el numero del error (0,1) en una variable, y pregunto si esa variable es igual a 0, entonces se realizo correctamente los INSERT, de lo contrario, ocurrio un error.
Saludos y espero que les sirva tambien.