Club Delphi  
    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
  #1  
Antiguo 23-04-2006
[pepon386] pepon386 is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Valencia
Posts: 68
Poder: 20
pepon386 Va por buen camino
Invalid request BLR al modificar un Procedimiento Almacenado

Hola a todos! No se si es muy normal, pero me he encontrado un problema bastante extraño que es fácil de reproducir: Tengo una base de datos de Firebird con un procedimiento almacenado que genera contadores. Pues bien, hasta hace poco funcionaba correctamente, sin ningún problema, hasta que he necesitado hacer un pequeño cambio en dicho procedimiento. Para ello realicé los cambios pertinentes, y al intentar hacer un commit me lanzó el siguiente error:
ISC ERROR CODE: 335544343
ISC ERROR MESSAGE: invalid request BLR at offset xxx bad parameter number

Ahora no me permite volver al código inicial del procedimiento almacenado, siempre me lanza la misma excepción.

La versión de Firebird que tengo instalada es la 1.5.3, aunque previamente tenía la 1.5.2 (ya me daba este error) y la actualicé para ver si se solucionaba.
Para editar la base de datos uso Marathon 3.0.0.50

Para poder reproducir el error os pongo el script para generar la base de datos:




Código SQL [-]
SET SQL DIALECT 3;
/*===========================================================================*/
/*Connect to Database */
/*===========================================================================*/
create database 'c:\Datos\TEST.FDB' user 'SYSDBA' password '';
 
/*===========================================================================*/
/*Domain Definitions */
/*===========================================================================*/
create domain CONTADOR as integer default 0 not null;
create domain DESCRIPCION as varchar(40) character set ISO8859_1 default '' collate ISO8859_1;
create domain FACTURA as integer default 0 not null;
create domain SERIE_FAC as varchar(5) character set ISO8859_1 default '' not null collate ISO8859_1;
create domain TIPO_CONT as varchar(5) character set ISO8859_1 default '' not null collate ISO8859_1;
 
/*===========================================================================*/
/*Table Definitions */
/*===========================================================================*/
/*Table: CONTADORES*/
create table CONTADORES(
  TIPO TIPO_CONT collate ISO8859_1,
  SERIE SERIE_FAC collate ISO8859_1,
  CONTADOR CONTADOR);
 
/*Table: SERIES*/
create table SERIES(
  SERIE_FAC SERIE_FAC collate ISO8859_1,
  DESCRIPCION DESCRIPCION collate ISO8859_1,
  PRIMERA_FAC FACTURA);
 
commit work;
set autoddl off;
set term ^;
create procedure PR_NUEVO_CONT (I_SERIE varchar(5) character set ISO8859_1, 
  I_TIPO varchar(5) character set ISO8859_1)
returns (O_CONTADOR integer)
as
begin exit; end
^
commit work^
alter procedure PR_NUEVO_CONT (I_SERIE varchar(5) character set ISO8859_1, 
  I_TIPO varchar(5) character set ISO8859_1)
returns (O_CONTADOR integer)
as
begin
  SELECT CONTADOR
    FROM CONTADORES
    WHERE SERIE = :I_SERIE AND TIPO = :I_TIPO
    INTO O_CONTADOR;
  IF (O_CONTADOR IS NULL) THEN
  BEGIN
    INSERT INTO CONTADORES
      (TIPO, SERIE, CONTADOR)
    VALUES
      (:I_TIPO, :I_SERIE, 0);
    O_CONTADOR = 0;
    IF (I_TIPO = 'FRA') THEN
    BEGIN
      SELECT PRIMERA_FAC
        FROM SERIES
        WHERE SERIE_FAC = :I_SERIE
        INTO O_CONTADOR;
      IF (O_CONTADOR > 0) THEN
        O_CONTADOR = (O_CONTADOR - 1);
    END
  END
  O_CONTADOR = ( O_CONTADOR + 1 ) ;
  UPDATE CONTADORES
    SET CONTADOR = :O_CONTADOR
    WHERE TIPO = :I_TIPO AND SERIE = :I_SERIE;
  suspend;
end
^
 
commit work^
set autoddl on^
set term ;^
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
procedimiento almacenado kejos MS SQL Server 3 02-09-2008 17:39:22
modificar Procedimiento Almacenado JulioGO Firebird e Interbase 5 07-04-2005 00:32:24
Que Significa este Error Invalid Request BLR at offset 38???? AGAG4 Firebird e Interbase 1 07-02-2005 22:33:16
Procedimiento Almacenado Ulises Providers 3 30-01-2004 18:14:58
procedimiento almacenado haron Firebird e Interbase 2 29-09-2003 01:09:56


La franja horaria es GMT +2. Ahora son las 04:27:11.


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