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

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: 913
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: 913
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



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 21:28:16.


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