Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #7  
Antiguo 07-01-2007
Avatar de Io
[Io] Io is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: San Fernando (Cádiz)
Posts: 259
Poder: 21
Io Va por buen camino
Saludos a todos.
Efectivamente, el formatear el disco no es una solución. Pero era algo que tenía pendiente y aproveche el momento y encontré esa solución parcial.

En contestación a ArdiIIa, el código que utilizo es:

Código:
const

  SP_AE_CLI_NO_HAB =
  'CREATE PROCEDURE SP_AE_CLI_NO_HAB '+
         '(ALB CHAR(6),FAC CHAR(6),FECHAFAC DATE,COD2 CHAR(10)) AS '+
  '  DECLARE VARIABLE CODFAC CHAR(6); '+
  '  DECLARE VARIABLE CLI CHAR(6); '+
  '  DECLARE VARIABLE AGE CHAR(6); '+
  '  DECLARE VARIABLE ALM CHAR(6); '+
  '  DECLARE VARIABLE PU CHAR(6); '+
  '  DECLARE VARIABLE FPAGO DATE; '+
  '  DECLARE VARIABLE COB NUMERIC(16,2); '+
  '  DECLARE VARIABLE SAL NUMERIC(16,2); '+
  '  DECLARE VARIABLE BASI NUMERIC(16,2); '+
  '  DECLARE VARIABLE IV NUMERIC(16,2); '+
  '  DECLARE VARIABLE R NUMERIC(16,2); '+
  '  DECLARE VARIABLE TOT NUMERIC(16,2); '+
  '  DECLARE VARIABLE PA SMALLINT; '+
  '  DECLARE VARIABLE REI SMALLINT; '+
  '  DECLARE VARIABLE FECHAXX DATE; '+
  '  DECLARE VARIABLE AUX VARCHAR(60); '+
  'BEGIN '+

//   SE TOMA  ALBARÁN
  '  SELECT CODCLIENTE,CODAGENTE,CODALMACEN,PUESTO,FECHAPAGO,COBRADO,SALDO,BASEIMP,IVA,RE,TOTAL,PAGADO,'+
            'REGIMENIVA,CODFACTURA '+
  '  FROM '+NOMBRE_DOCUMENTOS+' ' +
  '  WHERE CODALBARAN = :ALB '+
  '  INTO :CLI,:AGE,:ALM,:PU,:FPAGO,:COB,:SAL,:BASI,:IV,:R,:TOT,:PA,:REI,:CODFAC; '+

  '  IF (:FAC <> :CODFAC) THEN '+
  '  BEGIN '+

//   SE ACTUALIZA FACTURA
  '    UPDATE '+NOMBRE_FACTURAS+' ' +
  '    SET ' +
  '    CODCLIENTE = :CLI, '+
  '    CODAGENTE = :AGE, '+
  '    CODALMACEN = :ALM, '+
  '    PUESTO = :PU, '+
  '    HORA = current_time, '+
  '    REGIMENIVA = :REI, '+
  '    IMPRIMIDO = 0 '+
  '    WHERE CODFACTURA = :FAC; '+

//   SE ACTUALIZA ALBARAN
  '    UPDATE '+NOMBRE_DOCUMENTOS+' ' +
  '    SET ' +
  '    CODFACTURA = :FAC, '+
  '    FECHAFAC = :FECHAFAC '+
  '    WHERE CODALBARAN = :ALB; '+

//   SE ACTUALIZA MOVIMIENTOS
  '    UPDATE '+NOMBRE_MOVIMIENTOS+' ' +
  '    SET ' +
  '    CODFACTURA = :FAC, '+
  '    FECHAFAC = :FECHAFAC '+
  '    WHERE CODALBARAN = :ALB; '+

//   SE ACTUALIZA CNH
  '    UPDATE '+NOMBRE_CNH_S+' ' +
  '    SET ' +
  '    CODFACTURA = :FAC '+
  '    WHERE CODALBARAN = :ALB; '+
  '  END '+

  '  FECHAXX = current_date; '+
  '  AUX = '+''''+'PAGO FAC. '+''''+'|| :FAC || '+''''+'/'+''''+' || EXTRACT( year from :FECHAFAC); '+

// SE ACTUALIZA FACTURA
  '  UPDATE '+NOMBRE_FACTURAS+' ' +
  '  SET ' +
  '  FECHAPAGO = :FECHAXX, '+
  '  COBRADO = :TOT, '+
  '  SALDO = 0, '+
  '  BASEIMP = :BASI, '+
  '  IVA = :IV, '+
  '  RE = :R, '+
  '  TOTAL = :TOT, '+
  '  PAGADO = 1 '+
  '  WHERE CODFACTURA = :FAC; '+

//  SE BORRA APUNTES COBROS EXISTENTE
  '  DELETE FROM '+NOMBRE_COBROS+' ' +
  '  WHERE CODIGO = :FAC '+
  '  AND CODIGO2 = :COD2 '+
  '  AND TIPO = 1; '+

//  SE INSERTA APUNTES COBROS
  '  INSERT INTO '+NOMBRE_COBROS+' '+
  ' (CODIGO,CODIGO2,EMISORCOB,TIPO,FECHA,CONCEPTO,IMPORTE,FILA,CODCONCEPT,FECHADOC,CODCLIENTE,CODAGENTE) '+
  '  VALUES (:FAC,:COD2,:COD2,1,:FECHAXX,:AUX,:TOT,1,'+''''+'000000'+''''+',:FECHAFAC,:CLI,:AGE); '+

//  SE ACTUALIZA CAJA
  ' EXECUTE PROCEDURE SP_ACTUALIZACAJA :FECHAXX; '+

  'END ';





procedure TForm2.Button3Click(Sender: TObject);
begin
  ibT1.StartTransaction;
  try
    ibQMovimientos.SQL.Clear;
   ibQMovimientos.SQL.Add(SP_AE_CLI_NO_HAB);
    application.ProcessMessages;

    ibQMovimientos.ExecSQL;

    ibt1.Commit;
    showmessage('Ok Crea');
  except
    if ibt1.InTransaction then
      ibt1.Rollback;
    showmessage('Error Crea');
  end;

end;
ibQMovimientos, es un componente TQuery, que ha sido conectado a la base de datos mediante un componte TibDatabase.

los identificadores como "NOMBRE_COBROS", son constantes que continen el nombre de la tabla.

Este código me genera el error que os he dicho, pero si lo ejecuto desde el ibExpert me funciona bien (lógicamente cambiando las constantes por los nombres de las tablas)

No utilizo el comando supend, ni tampoco utilizo el signo ^.

Saludos
Responder Con Cita
 



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
Ocultar código de Stored Procedures y Triggers en FireBird... jncrls Firebird e Interbase 4 08-01-2007 16:51:52
Problema con stored procedure dape Firebird e Interbase 11 20-10-2005 05:13:23
Se puede en stored procedure? Abelardo Firebird e Interbase 0 09-04-2004 00:00:48
Ver los Stored Procedure tgsistemas SQL 0 06-04-2004 17:18:22
Stored Procedure tgsistemas SQL 1 27-02-2004 13:10:33


La franja horaria es GMT +2. Ahora son las 12:20:01.


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
Copyright 1996-2007 Club Delphi