FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Procedimiento Almacenado Devolver una Select
Hola me gustaria saber si es posible mostrar un conjunto de resultados desde un prodedimiento almacenado en firebird o Interbase de la misma forma que lo hace sql Server.
Ejemplo Sql server: Create Procedure Prueba ( @p1 smallint) as select * from T1 where c1 = @p1 Esto me devolveria todos los campos de T1 donde c1 sea igual a la variable pero en Interbase o Firebird no se como se podria hacer Grancias |
#2
|
||||
|
||||
Procedimiento almacenado en Firebird/Interbase
Hola granchop!
Aquí tienes un ejemplo de un procedimiento almacenado en FireBird que se comporta como un SELECT
Después solamente hay que llamar al procedimiento de la siguiente manera:
Espero que te sea útil Última edición por Héctor Randolph fecha: 04-01-2005 a las 08:20:22. |
#3
|
|||
|
|||
Gracias lo probe y me resulto es un poco mas incomodo puesto que tienes que declarar todos los datos que vas a devolver. Aprovecho para realizar otra preguntita ya que estoy iniciandome en Firebird e Interbase cuando hago la llamada al procedimiento almacenado se puede utilizar
SELECT * FROM PROCEDIMIENTO(Valor1,Valor2) o EXCUTE PROCEDURE PROCEDIMIENTO(Valor1,Valor2) mi cuestion es que cando trabajo con dos variables llamese Var1 y Var2 hasta donde e podido averiguar hay que seguir el orden de como las declaraste no como en Sql Server que puedo hacer lo siguiente EXEC PROCEDIMIENTO @Variable2 = Valor2,@Variable1 = Valor1 es decir como puedo especificar a que variable doy el valor no tengo que seguir el orden y me resulta mucho mas comodo y hay va la pregunta. ¿es posible en Intebase o Firebird hacer esto? Gracias por la colaboracion con este pobre Novato |
#4
|
||||
|
||||
Cita:
Tienes razón es un poco más latoso, pero la ventaja de esta estructura es que te ofrece más posibilidades ya que tienes más control sobre los datos que devuelves, por ejemplo puedes declarar variables, después moficarlas dentro del procedimiento y devolverlas como una nueva columna en la consulta, mezclar datos procedentes de otras tablas, calcular valores en funciones definidas por el usuario en librerías externas, entre otras cosas. Cita:
Llamar a un procedimiento por medio de EXECUTE solamente se utiliza cuando el procedimiento devuelve un valor o ninguno y en este caso no es necesario utilizar SUSPEND ni la cláusula FOR SELECT. Cita:
Un saludo. Última edición por Héctor Randolph fecha: 04-01-2005 a las 09:59:26. |
#5
|
|||
|
|||
Gracias Duda aclarada por lo que he trabajado con Sql Server me parace mas completo porque a lo que me comentabas en Sql puedo hacer
SET @VARIABLE = @VARIABLE + 1 SELECT @VARIABLE NOMBRE_CAMPO FROM T1 y trabajar con esa variable, las desventajas que le encuentro a Sql Server son su alto coste en la Version Comericial, junto con las restricciones de la version libre(MSDE) y claro esta que Sql Server no es multiplataforma. En fin creo que me quedo con Firebird para aplicaciones mas o menos MEDIAS en cuanto a carga de Datos. Pero me sigue gustando mas SQL Server a ver si en proximas versiones de Firebir e Interbase se van arreglando estos problemillas. Gracias por toda la ayuda prestada |
#6
|
||||
|
||||
Hola que tal.
Como se espesifica, declarar las columnas con su tipo de dato, ahora se puede ese tipo de dato poner un dominio? ya que hice una prueba pero por tipo de dato le puse un dominio que deve ser lo mismo no? o ahi algo diferente en la declaracion? saludos gracias |
|
|
|