Ver Mensaje Individual
  #1  
Antiguo 15-05-2014
gplata gplata is offline
Registrado
 
Registrado: sep 2010
Posts: 8
Reputación: 0
gplata Va por buen camino
Problema al hacer update

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

Última edición por ecfisa fecha: 15-05-2014 a las 22:15:28. Razón: Etiquetas
Responder Con Cita