Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-08-2011
Chaja Chaja is offline
No confirmado
 
Registrado: ago 2004
Ubicación: Mar del Plata
Posts: 238
Poder: 0
Chaja Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 29-08-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.741
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
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;
Responder Con Cita
  #3  
Antiguo 30-08-2011
Chaja Chaja is offline
No confirmado
 
Registrado: ago 2004
Ubicación: Mar del Plata
Posts: 238
Poder: 0
Chaja Va por buen camino
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...


Luis Roldan
Mar del Plata
Argentina
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
No hay code completation Paulao Varios 1 12-02-2009 14:17:38
LOL! Code. En serio mamcx Varios 0 19-11-2007 17:40:15
SQL error code=-204 mRoman SQL 4 19-09-2005 17:16:10
[ code ] problemas con tag [ / code ] gatsu PHP 11 26-08-2004 12:10:33


La franja horaria es GMT +2. Ahora son las 16:17:01.


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