Cita:
|
Empezado por granchop
es un poco mas incomodo puesto que tienes que declarar todos los datos que vas a devolver.
|
Hola granchop!
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:
|
Empezado por granchop
cuando hago la llamada al procedimiento almacenado se puede utilizar
SELECT * FROM PROCEDIMIENTO(Valor1,Valor2) o
EXCUTE PROCEDURE PROCEDIMIENTO(Valor1,Valor2)
|
Si utilizas EXCUTE PROCEDURE PROCEDIMIENTO(Valor1,Valor2) entonces el procedimiento no devolverá toda la consulta, es decir, al encontrar la cláusula SUSPEND entonces se da por terminado y solamente mostrará el primer renglón.
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:
|
Empezado por granchop
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?
|
Bueno, hasta el momento yo siempre he enviado los parámetros siguiendo el orden en el que fueron declarados en el procedimiento, me parece que FireBird no tiene la flexibilidad que tu comentas.
Un saludo.