Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-05-2004
taote taote is offline
Miembro
 
Registrado: feb 2004
Posts: 23
Poder: 0
taote Va por buen camino
Question ¿Es posible hacer una consulta de este tipo?

Hola:

¿Sabe alguien la manera de hacer en un procedimiento algo parecido a la siguiente consulta?

Código PHP:
CREATE PROCEDURE ULTIMOCODIGO (
    
CAMPO VARCHAR(20),
    
TABLA VARCHAR(20))
RETURNS (
    
CODIGO VARCHAR(10))
AS
begin
       select MAX
(:CAMPOfrom :TABLA into :CODIGO;
end 
es decir, insertar en la clausula FROM una tabla de la que solo se el identificador de su nombre. El código de arriba no me lo permite.

Gracias por adelantado.
Responder Con Cita
  #2  
Antiguo 22-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Ninguno de los SGDB's que conozco permite enviar en un parámetro el nombre de la tabla. Sin embargo, algunso motores si permiten dentro de un Stored Procedure la ejecución de SQL dinámico, es decir, sentencias construidas "al vuelo". Eso si, la implementación en cada uno es diferente.

Dado que no indicas el motor con el que trabajas, hasta alli puedo dejarte.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 22-05-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 24
__cadetill Va por buen camino
no indicas el motor, como bien dice Juan Antonio, pero si es Firebird 1.5, te recomiendo la lectura de este hilo

PD: en lugar de usar la etiqueta PHP, podrías haber usado la SQL
Responder Con Cita
  #4  
Antiguo 24-05-2004
taote taote is offline
Miembro
 
Registrado: feb 2004
Posts: 23
Poder: 0
taote Va por buen camino
Thumbs up

Perfecto. Sí, es con Firebird 1.5 así que me funciona esta característica, es la que necesitaba. Gracias y la próxima vez ya encerraré el código en el bloque correcto

A propósito, ¿que diferencia hay entre incluir o no el suspend al final de un procedimiento?
Responder Con Cita
  #5  
Antiguo 24-05-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 24
__cadetill Va por buen camino
Cita:
Empezado por taote
A propósito, ¿que diferencia hay entre incluir o no el suspend al final de un procedimiento?
Si no voy errado, sin el suspend no se devolvería ningún valor
Responder Con Cita
  #6  
Antiguo 24-05-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 23
guillotmarc Va por buen camino
Hola.

El suspend se utiliza para devolver el resultado del procedimiento almacenado como un dataset, es decir que lo tienes que utilizar si el procedimiento almacenado va a devolver más de un registro. Se tiene que llamar para cada uno de los registros a devolver.

En este caso no hace falta el suspend, puesto que el valor devuelto, lo recogemos en el parámetro de salida, y no en un dataset, en cuyo caso lo leeriamos de esta forma :

select CODIGO from ULTIMO_CODIGO('ID', 'CLIENTES')

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
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


La franja horaria es GMT +2. Ahora son las 21:43:36.


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