Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   TDBXError Unasiggned Code (https://www.clubdelphi.com/foros/showthread.php?t=75493)

Chaja 29-08-2011 03:36:54

TDBXError Unasiggned Code
 
Estimaos:
Tengo este problema desde hace tiempo, lo fui solucioando cambiando la forma de ejecutarlo, pero ahora necesito que sea como lo habia echo cuando usaba el BDE.
Saque todos los comp. de coneccion con BDE y ahora uso los DBX.
Uso D-2007 con Interbase 7.5. Tengo el siguiente SP:

Código SQL [-]
CREATE PROCEDURE AGREGAR_MOV_CAJA_EFECTIVO_CERRADA (
    ID_CPBTE INTEGER,
    TIPO_COMPROB VARCHAR(2),
    CLASE_COMPROB VARCHAR(2),
    NROCPBTE VARCHAR(13),
    ID_CUENTA_CAJA INTEGER,
    ID_CAJA INTEGER,
    FECHA_MOVIMIENTO DATE,
    DEBE NUMERIC(15,3),
    HABER NUMERIC(15,3),
    TIPOOPERACION VARCHAR(1))
AS
DECLARE VARIABLE FECHA_DE_CAJA DATE;
DECLARE VARIABLE ID_MOV_CAJA_AUX INTEGER;
begin
  /* busco la caja abierta segun el parametro de la cta de caja */
  select c.fecha_incio from caja_cab c
    where c.id_cuenta_caja=:id_cuenta_caja and c.id_caja=:ID_CAJA
      into :fecha_de_caja;
  /************************************************************/
  /*Agrego del Movimiento de caja */
  id_mov_caja_aux=gen_id(next_id_caja_mov,1); /* Guardo el id del movimiento*/

  insert into caja_mov (id_mov_caja,  id_caja,
                        fecha_caja,   fecha_operacion,
                        tipo_operacion, tipo_comprob,
                        clase_comprob,  id_comprobante,
                        nro_comprobante,debe,
                        haber,id_tpago,
                        id_fpago,unidades,
                        cotizacion,id_cuenta_caja,
                        moneda)
         values (:id_mov_caja_aux,:id_caja,
                 :fecha_de_caja,  :fecha_movimiento,
                 :tipooperacion,:tipo_comprob,
                 :clase_comprob,:id_cpbte,
                 :nrocpbte,:debe,
                 :haber,1,
                 1,:debe+:haber,
                 1,:id_cuenta_caja,
                 1);
   insert into mov_efectivo  (id_efectivo, id_caja,
                              id_mov_caja, id_fpago,
                              cotizacion,  unidades,
                              importe,     id_cuenta_caja,
                              moneda)
         values (gen_id(next_id_mov_efectivo,1),:id_caja,:id_mov_caja_aux,1,1,
                 :debe+:haber,:debe+:haber,:id_cuenta_caja,1);

   /* Procedure Text */
 /* suspend;  */
end

el cual ejecuto desde mi sistema asi
:
Código Delphi [-]
procedure TFormControlOP.spAgregaEfectivoClick(Sender: TObject);
begin
  DMMain_2.SQLConectionMain.StartTransaction(DMMain_2.Td);
    try
      spCajaMov.Close;
      spCajaMov.ParamByName('ID_CPBTE').AsInteger      := CDSOPagoID_OP.AsInteger;
      spCajaMov.ParamByName('TIPO_COMPROB').AsString   := CDSOPagoTIPOCPBTE.AsString;
      spCajaMov.ParamByName('CLASE_COMPROB').AsString  := CDSOPagoCLASECPBTE.AsString;
      spCajaMov.ParamByName('NROCPBTE').AsString       := CDSOPagoNROCPBTE.AsString;
      spCajaMov.ParamByName('ID_CUENTA_CAJA').AsInteger:= StrToInt(edIdCtaCaja.Text);
      spCajaMov.ParamByName('ID_CAJA').AsInteger       := StrToInt(Trim(edIdCaja.Text));
      spCajaMov.ParamByName('FECHA_MOVIMIENTO').AsDate := CDSOPagoFECHA.AsDateTime;
      spCajaMov.ParamByName('DEBE').AsFloat           := 0;
      spCajaMov.ParamByName('HABER').AsFloat           := CDSOPagoTOTAL.AsFloat;
      spCajaMov.ParamByName('TIPOOPERACION').AsString  :='E';
      spCajaMov.ExecProc;
      spCajaMov.Close;
      DMMain_2.SQLConectionMain.Commit(DMMain_2.Td);
    except
      DMMain_2.SQLConectionMain.Rollback(DMMain_2.Td);
      ShowMessage('Operacion No finalizada....!');
    end;
  Traer;

end;

pero cuando hace el Exec, tira este error

TDBXError Unasiggned Code

si ejecuto el store desde la base de datos, funciona bien, asi que el SP no es.
Crei que era los datos que asignaba, pero no... no se donde es el error o es del componente. En algunos casos no me acepataba los parametros con una varchar de 1, pero no fue asi. Tengo un SP casi igual el cual ejecuto, sin problemas, la unica dif es que tiene un parametro menos (ID_CCUENT_CAJA). Alguien tiene alguna sugerencia...???



Luis Roldan
Mar del Plata
Argentina

duilioisola 29-08-2011 09:02:23

Agrega el mensaje de la exception al ShowMessage, para ver que es lo que dice.
No se si se refiere a que Interbase dio un codigo de error que no esta dentro de la tabla de errores de Delphi o si interbase te da un error con ese texto.

Código Delphi [-]
procedure TFormControlOP.spAgregaEfectivoClick(Sender: TObject);
begin
  DMMain_2.SQLConectionMain.StartTransaction(DMMain_2.Td);
    try
      spCajaMov.Close;
      spCajaMov.ParamByName('ID_CPBTE').AsInteger      := CDSOPagoID_OP.AsInteger;
      spCajaMov.ParamByName('TIPO_COMPROB').AsString   := CDSOPagoTIPOCPBTE.AsString;
      spCajaMov.ParamByName('CLASE_COMPROB').AsString  := CDSOPagoCLASECPBTE.AsString;
      spCajaMov.ParamByName('NROCPBTE').AsString       := CDSOPagoNROCPBTE.AsString;
      spCajaMov.ParamByName('ID_CUENTA_CAJA').AsInteger:= StrToInt(edIdCtaCaja.Text);
      spCajaMov.ParamByName('ID_CAJA').AsInteger       := StrToInt(Trim(edIdCaja.Text));
      spCajaMov.ParamByName('FECHA_MOVIMIENTO').AsDate := CDSOPagoFECHA.AsDateTime;
      spCajaMov.ParamByName('DEBE').AsFloat            := 0;
      spCajaMov.ParamByName('HABER').AsFloat           := CDSOPagoTOTAL.AsFloat;
      spCajaMov.ParamByName('TIPOOPERACION').AsString  :='E';
      spCajaMov.ExecProc;
      spCajaMov.Close;
      DMMain_2.SQLConectionMain.Commit(DMMain_2.Td);
    except
      on e.Exception do
      begin
         DMMain_2.SQLConectionMain.Rollback(DMMain_2.Td);
         ShowMessage('Operacion No finalizada....!'+#13+E.Message);
      end;
    end;
  Traer;
end;

Chaja 30-08-2011 02:40:31

Dulio..:
Gracias por tu tiempo... pero lo resolvi. No se si fue casualidad o que, pero se me ocurrio cambiar el nombre del SP a uno mas corto , y no dio error.
Desconozco el por que pero tal vez tu u otro de los amigos me sepa contestar, mas que nada para sacarme la curiosidad. Ahora le puse AG_MOV_CAJA_EFEC_CERRADA
no se...:confused::confused::confused::confused::confused:


Luis Roldan
Mar del Plata
Argentina


La franja horaria es GMT +2. Ahora son las 01:35:19.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi