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 23-09-2013
[birmain] birmain is offline
Miembro Premium
 
Registrado: feb 2005
Ubicación: Albacete - España
Posts: 49
Poder: 0
birmain Va por buen camino
Código SQL [-]
create or alter procedure usp_cargar_cbo_1p
(
pc_tipo_tabla varchar(20)
)
returns
(
pn_codigo numeric(10,0),
pc_nombre varchar(200)
)
as
begin

if (c_tipo_tabla = 'categoria') then
begin

for select cod_categoria, nom_categoria
    from categoria
    into n_codigo, c_nombre
do suspend;

end

if (c_tipo_tabla = 'cliente') then
begin

for select cod_cliente, nom_cliente
    from cliente 
    into n_codigo, c_nombre
do suspend;

end


end;

Cada bucle for ..select, después del do puede contener un begin .. end con las lineas necesaria para procesar n_codigo, c_nombre. Si estas pariables son de salida y deben formar parte del cursor de salida al final del paréntesis begin .. end antes del end debe haber un suspend. Si no hay ningún procesamiento adicional y la única instrucción necesaria es el suspend no hace falta begin .. end (lo mismo que en pascal)

Podría quedarte así:

Código SQL [-]
create or alter procedure usp_cargar_cbo_1p
(
pc_tipo_tabla varchar(20)
)
returns
(
pn_codigo numeric(10,0),
pc_nombre varchar(200)
)
as
begin

if (c_tipo_tabla = 'categoria') then
begin

for select cod_categoria, nom_categoria
    from categoria
    into n_codigo, c_nombre
do begin
   n_codigo = n_codigo + 1; // en el supuesto de que esta instrucción fuera necesaria
   suspend;
   end

end

if (c_tipo_tabla = 'cliente') then
begin

for select cod_cliente, nom_cliente
    from cliente 
    into n_codigo, c_nombre
do suspend;

end


end;
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
Procedimiento Almacenado Devolver una Select granchop Firebird e Interbase 5 14-09-2006 09:57:03
ZeosDBO: ZStoredProc intenta hacer un SELECT a un Procedimiento Almacenado !!!! DobleSiete Conexión con bases de datos 1 24-05-2005 14:12:46
for select....do en procedimiento almacenado lledesma SQL 1 23-04-2004 08:03:01
Que es más eficiente, un procedimiento almacenado o un select de una vista Carlitos Firebird e Interbase 7 27-10-2003 11:12:09
Select a procedimiento almacenado ACK Firebird e Interbase 12 19-07-2003 20:13:28


La franja horaria es GMT +2. Ahora son las 06:41:28.


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