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
  #2  
Antiguo 30-12-2008
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Creo que esto se puede solucionar con una tabla temporal (temp_id) y la sentencia execute statement.

Lo que hago es insertar el max(campoID) en la tabla temporal y luego hacer un select de ese campo.
Finalmente, lo borro.

Código SQL [-]
CREATE PROCEDURE OBTENER_MAXIMO(
TABLA VARCHAR(50) CHARACTER SET NONE COLLATE NONE,
CAMPOID VARCHAR(50) CHARACTER SET NONE COLLATE NONE)
RETURNS(NUMREG INTEGER)
AS
DECLARE VARIABLE CONTADOR INTEGER;
declare variable sql varchar(1024);
BEGIN
   /* Genero el insert */
   sql = 'insert into temp_id (id) (select max('||:CAMPOID||') from '||:TABLA||')';

   /* Borro antes de insertar. */
   /* Si no lo hago podria haber dos valores y dar un error luego (singelton select) */
   delete from temp_id;

   /* Ejecuto el insert */
   execute statement sql;
   
   /* Inicializo contador. Si no se inserta nada, quiero que sea 0 */
   /* De lo contrario, el select siguiente podria tener basura */
   contador=0;

   /* Recupero lo que se ha insertado. El max id de la tabla */
   select id from temp_id 
   into :contador;

   /* Borro el contenido */
   delete from temp_id;

   /* Calculo lo que voy a devolver */
   IF (:CONTADOR=0) THEN NUMREG=1;
      ELSE NUMREG=CONTADOR+1;

   /* Devuelvo valor */
   SUSPEND;
END
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 y parametros zcatzz SQL 4 16-05-2007 02:35:33
Cómo trabajar con los parámetros de un procedimiento almacenado? efelix Conexión con bases de datos 7 16-02-2007 22:12:11
Parámetros de un procedimiento almacenado efelix Conexión con bases de datos 0 06-02-2007 16:43:30
Parámetros del procedimiento almacenado efelix MS SQL Server 6 03-11-2006 20:37:34
Parametros a procedimiento almacenado JulioGO PHP 1 03-09-2004 19:04:50


La franja horaria es GMT +2. Ahora son las 19:39:13.


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