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 Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-11-2009
Avatar de sierraja
sierraja sierraja is offline
Miembro
 
Registrado: sep 2004
Posts: 281
Poder: 20
sierraja Va por buen camino
Incrementar Store Procedure Firebird

Saludos a todos.

Tengo delphi 7, firebird 1.5 de que manera se puede hacer un store procedure que me actualice una tabla, donde un campo es un ID y que se va incrementando despues que la tabla esta llena. Es decir:

tengo la tabla con la suiguiente data:

Código:
RUTA   NOMBRE   
nulo     Pedro
nulo     Juan
nulo     Cesar
nulo     Andres
Ahora necesito generarle la ruta de la siguiente manera:

Código:
RUTA   NOMBRE   
1        Pedro
2        Juan
3        Cesar
4        Andres
Es decir, despues que la data esta en la tabla, generar la ruta incrementandose pero en un store procedure en firebird. Gracias por su atencion...
Responder Con Cita
  #2  
Antiguo 12-11-2009
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 922
Poder: 23
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Podria ser algo asi:

Este asigna un id correlativo a todos los registros.
Código SQL [-]
CREATE PROCEDURE spSETID ()
    
AS                                                   
DECLARE VARIABLE id integer;
DECLARE VARIABLE nombre varchar(50); --No se el tamano...?
begin   
       id=0;                                       
       for select NOMBRE
            from TABLA
            into :nombre
       do
       begin
              id=id+1;
              update TABLA
              set ruta=:id
              where NOMBRE=:nombre;
       end
end

Espero te sirva de algo...
Responder Con Cita
  #3  
Antiguo 13-11-2009
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
Con el siguiente query puedes hacer lo que buscas.
Código SQL [-]
update TABALA set RUTA=(
select coalesce(max(p.RUTA),0) + 1 from TABLA p)
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
  #4  
Antiguo 16-11-2009
Avatar de sierraja
sierraja sierraja is offline
Miembro
 
Registrado: sep 2004
Posts: 281
Poder: 20
sierraja Va por buen camino
Buenos dias he hecho las pruebas con las dos opciones y la opcion de cloayza la hace mucho mas rapido. Pero mi pregunta es: como quedaria si no tuviese que introducir el nombre sino que agarre todos los registro de la tabla. (Perdon no entiendo la sintanxi que dice :nombre en el select)
Responder Con Cita
  #5  
Antiguo 16-11-2009
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 922
Poder: 23
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Código SQL [-]
 
--Traduccion: Seleccione el campo NOMBRE desde la tabla TABLA y asignelo a :Nombre
for select NOMBRE        
            from TABLA
            into :nombre 
       do
       begin
 --Traduccion: Actualize la tabla TABLA, asigne el valor de :id al campo Ruta, cuando el campo NOMBRE sea igual al valor asignado a :nombre.
       id=id+1;
       UPDATE TABLA 
       SET Ruta=:id   
       WHERE NOMBRE=:nombre;  
       end

Espero te aclare la duda...Un abrazo
Responder Con Cita
  #6  
Antiguo 16-11-2009
Avatar de sierraja
sierraja sierraja is offline
Miembro
 
Registrado: sep 2004
Posts: 281
Poder: 20
sierraja Va por buen camino
Wink Caso Resuelto

Excelente, efectiva la solucion. Gracias por el apoyo. Cuidence.....
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Store procedure sancarlos MySQL 3 30-01-2008 19:51:49
Store Procedure sépoco MS SQL Server 5 10-01-2008 16:11:54
Store procedure php jorgito MySQL 1 06-06-2006 08:55:12
Store procedure en firebird ronimaxh Firebird e Interbase 4 19-04-2006 11:42:12
store procedure ronimaxh Firebird e Interbase 2 24-06-2003 20:20:22


La franja horaria es GMT +2. Ahora son las 20:39:38.


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