Buenas tardes,
tengo el siguiente problema:
al ejecutar un store procedure que hace un update me marca el siguiente error: La operación de multiples pasos de OLE DB generó errores.
Al hacer insert no hay problemas, solo con el update, esto es lo que estoy ejecutando en Delphi 7, estoy usando ADO conecction y MySQL ODBC connector 5.2, espero me puedan ayudar, gracias
Código Delphi
[-]
spacproyecto.Close;
spacproyecto.Parameters.ParamByName('xtipomov').Value:='A';
spacproyecto.Parameters.ParamByName('xidproyecto').Value:=form1.spgridproyectosid_proyecto.AsInteger ;
spacproyecto.Parameters.ParamByName('xconsecutivo').Value:=edconsecutivo.Text;
spacproyecto.Parameters.ParamByName('xasg').Value:=edasg.Text;
spacproyecto.Parameters.ParamByName('xa').Value:=eda.Text;
spacproyecto.Parameters.ParamByName('xb').Value:=edb.Text;
spacproyecto.Parameters.ParamByName('xstatus').Value:=edstatus.Text;
spacproyecto.Parameters.ParamByName('xproyecto').Value:=ednomproyecto.Text;
spacproyecto.Parameters.ParamByName('xelectrico').Value:=spcombotransformer.fieldbyname('idcat_trans formadoresdeaislamiento').Value;
spacproyecto.Parameters.ParamByName('xestructura').Value:=spcbestructura.fieldbyname('idcat_estructu ra').Value;
spacproyecto.Parameters.ParamByName('xaltura').Value:=edaltura.Text;
spacproyecto.Parameters.ParamByName('xacceso').Value:=spcbacceso.fieldbyname('idcat_acceso').Value;
spacproyecto.Parameters.ParamByName('xubicacion').Value:=spcbciudades.fieldbyname('idcat_municipio') .Value;
spacproyecto.Parameters.ParamByName('xcliente').Value:=spcbclientes.fieldbyname('idcat_clientes').Va lue;
spacproyecto.Parameters.ParamByName('xcotizacion').Value:=edcotizacion.Text;
spacproyecto.Parameters.ParamByName('xrealizacion').Value:=edrealizacion.Date;
spacproyecto.Parameters.ParamByName('xpr_numero').Value:=edprnum.Text;
spacproyecto.Parameters.ParamByName('xsolicitud_pr').Value:=edsolicitapr.Date;
spacproyecto.Parameters.ParamByName('xliberacion_pr').Value:=edliberapr.Date;
spacproyecto.Parameters.ParamByName('xnumero_po').Value:=ednumpo.Text;
spacproyecto.Parameters.ParamByName('xsolicitut_po').Value:=edsolicitapo.Date;
spacproyecto.Parameters.ParamByName('xliberacion_po').Value:=edliberapo.Date;
spacproyecto.Parameters.ParamByName('xnumero_gr').Value:=ednumgr.Text;
spacproyecto.Parameters.ParamByName('xsolicitud_gr').Value:=edsolicitagr.Date;
spacproyecto.Parameters.ParamByName('xliberacion_gr').Value:=edliberagr.Date;
spacproyecto.Parameters.ParamByName('xfacturado').Value:=edfacturado.Text;
spacproyecto.Parameters.ParamByName('xacumulado').Value:=edacumulado.Text;
spacproyecto.Parameters.ParamByName('xingreso_fact').Value:=edingresofac.Date;
spacproyecto.Parameters.ParamByName('xnumero_fact').Value:=ednumfac.Text;
spacproyecto.Parameters.ParamByName('xpago_fact').Value:=edpagofac.Date;
spacproyecto.Parameters.ParamByName('xstatus_proyecto').Value:=spcbestatus.fieldbyname('idcat_estatu sproyecto').Value;
spacproyecto.Parameters.ParamByName('xtipo_pago').Value:=spcbtipopago.fieldbyname('idcat_tipo_pago') .Value;
spacproyecto.Parameters.ParamByName('xrecepcion_pago').Value:=edrecepago.Date;
spacproyecto.Parameters.ParamByName('xbalance_proyecto').Value:=edbalance.Text;
spacproyecto.Parameters.ParamByName('xcaptura').Value:=spcbempleados.fieldbyname('idcat_empleados'). AsString;
spacproyecto.Parameters.ParamByName('xobservaciones').Value:=edobservaciones.Text;
spacproyecto.ExecProc;
y el stored procedure de mysql es el sigiuiente:
Código SQL
[-]
CREATE DEFINER=`root`@`%` PROCEDURE `spacproyecto`(`xtipomov` varchar(1),
`xidproyecto` int,
`xconsecutivo` varchar(50),
`xasg` varchar(45),
`xa` varchar(45),
`xb` varchar(45),
`xstatus` varchar(45),
`xproyecto` varchar(245),
`xelectrico` smallint,
`xestructura` smallint,
`xaltura` varchar(45),
`xacceso` int,
`xubicacion` int,
`xcliente` int,
`xcotizacion` varchar(145),
`xrealizacion`date,
`xpr_numero`varchar(145),
`xsolicitud_pr`date,
`xliberacion_pr`date,
`xnumero_po`varchar(45),
`xsolicitut_po`date,
`xliberacion_po`date,
`xnumero_gr`varchar(145),
`xsolicitud_gr`date,
`xliberacion_gr`date,
`xfacturado`varchar(45),
`xacumulado`varchar(45),
`xingreso_fact`date,
`xnumero_fact`varchar(45),
`xpago_fact`date,
`xstatus_proyecto`varchar(45),
`xtipo_pago`varchar(45),
`xrecepcion_pago`date,
`xbalance_proyecto`varchar(45),
`xcaptura`int,
`xobservaciones`varchar(245))
BEGIN
if xtipomov='A'
then
begin
update proyectos
set
consecutivo=`xconsecutivo`,
asg=`xasg`,
a=`xa`,
b=`xb`,
estatus=`xstatus`,
proyecto=`xproyecto`,
electrico=`xelectrico`,
estructura=`xestructura`,
altura=`xaltura`,
acceso=`xacceso`,
ubicacion=`xubicacion`,
cliente=`xcliente`,
cotizacion=`xcotizacion`,
realizacion=`xrealizacion`,
pr_numero=`xpr_numero`,
solicitud_pr=`xsolicitud_pr`,
liberacion_pr=`xliberacion_pr`,
numero_po=`xnumero_po`,
solicitut_po=`xsolicitut_po`,
liberacion_po=`xliberacion_po`,
numero_gr=`xnumero_gr`,
solicitud_gr=`xsolicitud_gr`,
liberacion_gr=`xliberacion_gr`,
facturado=`xfacturado`,
acumulado=`xacumulado`,
fecha_ing_fac=`xingreso_fact`,
numero_fact=`xnumero_fact`,
pago_fact=`xpago_fact`,
status_proyecto=`xstatus_proyecto`,
tipo_pago=`xtipo_pago`,
recepcion_pago=`xrecepcion_pago`,
balance_proyecto=`xbalance_proyecto`,
captura=`xcaptura`,
observaciones=`xobservaciones`
where id_proyecto=`xidproyecto`;
end;
else
begin
insert into proyectos
(consecutivo,
asg,
a,
b,
estatus,
proyecto,
electrico,
estructura,
altura,
acceso,
ubicacion,
cliente,
cotizacion,
realizacion,
pr_numero,
solicitud_pr,
liberacion_pr,
numero_po,
solicitut_po,
liberacion_po,
numero_gr,
solicitud_gr,
liberacion_gr,
facturado,
acumulado,
fecha_ing_fac,
numero_fact,
pago_fact,
status_proyecto,
tipo_pago,
recepcion_pago,
balance_proyecto,
captura,
observaciones)
values
(`xconsecutivo`,
`xasg`,
`xa`,
`xb`,
`xstatus`,
`xproyecto`,
`xelectrico`,
`xestructura`,
`xaltura`,
`xacceso`,
`xubicacion`,
`xcliente`,
`xcotizacion`,
`xrealizacion`,
`xpr_numero`,
`xsolicitud_pr`,
`xliberacion_pr`,
`xnumero_po`,
`xsolicitut_po`,
`xliberacion_po`,
`xnumero_gr`,
`xsolicitud_gr`,
`xliberacion_gr`,
`xfacturado`,
`xacumulado`,
`xingreso_fact`,
`xnumero_fact`,
`xpago_fact`,
`xstatus_proyecto`,
`xtipo_pago`,
`xrecepcion_pago`,
`xbalance_proyecto`,
`xcaptura`,
`xobservaciones`);
end;
end if;
END