Como lanzar un procedimiento almacenado

Hola a todos:
La verdad es que este foro siempre me ha sido de mucha utilidad y he
aprendido mucho con ustedes, gracias de antemano.

Hoy tengo un problema, que aunque he leido la documentación en internet
sobre ello, no logro dar con la solución.

Y es, que me gustaria lanzar un procedimiento almacenado al presionar un
botón.

Bueno espero que me ayuden, gracias!!!

Depende de la base de datos, pero podrías usar el find_by_sql o
connection.select_all o connection.execute …

http://wiki.rubyonrails.com/rails/pages/HowtoUseStoredProceduresAsTables

Ahí están los ejemplos para MySQL, MSSQL y Oracle.
Silvio

El día 11/10/07, Andres L. [email protected]
escribió:

Muchas gracias, por tu respuesta…

La verdad que ya habia leido esa página, pero no se que me pasa que soy
incapaz de lograr lanzar un procedimiento almacenado.

No se si podrias ayudarme un poco más.

De todas formas muchas gracias por todo.

Estuve viendo la sugerencia provista en esa página y me di cuenta que
para
usar un procedure en Oracle hay que crear una vista de base de datos,
luego
un controlador, un modelo y otra vista en rails para usarlo.

A mi me toco hacer un sistema que proveyera estadísticas de otro, pero
como
no conozco (ni quiero conocer) Oracle Developer Forms, decidí hacerlo en
Rails. Pero como no queria crear un modelo para cada una de la gran
cantidad
de tablas que tiene el sistema, decidi optar por usar otra conexión en
un
controller de la siguiente forma:

cursor=OCI8.new('usuario', 'contraseña',

‘//host:puerto/sid’).exec(cadenasql)

y a partir de esa variable cursor obtenía los datos de la cadena sql.

El día 11/10/07, Silvio Q. [email protected] escribió:

Muchisimas gracias Benjamin por tus comentarios:

Estoy trabajando con el servidor SQL de microsoft, no es mi gusto, pero
es lo que hay en la empresa donde curro.

Andres L. escribió:

Muchas gracias, por tu respuesta…

La verdad que ya habia leido esa página, pero no se que me pasa que soy
incapaz de lograr lanzar un procedimiento almacenado.

No se si podrias ayudarme un poco más.

De todas formas muchas gracias por todo.

Si es de Oracle es asi:
connection = OCI8.new(“Usuario”, “clave”, “127.0.0.1/database”)
plsql = connection.parse(“BEGIN
nombre_paquete.nombre_procedimiento(:out1,:out2,:out3); END;”)
plsql.bind_param(’:out1’,nil,String,250) # Se reciben los parametros
que son de salida
plsql.bind_param(2,nil,Fixnum)
plsql.bind_param(’:out3’,nil,String,250)
plsql.exec
plsql.close

Igual no comentas con que base de datos vas a ejecutar el procedimiento
almacenado

Benjamin C.

Probaste …

ActiveRecord::Base.connection.execute(“exec tu_sp”)

Fijate que en el texto hay una mención al AutoCommit. De todas formas,
posteá el código del SP y la prueba que estás realizando.

Silvio

El día 16/10/07, Andres L. [email protected]
escribió:

Perfecto, muchisimas gracias Silvio, me ayudastes mucho.
Ha funcionado a la primera, la verdad que ahora las aplicaciones dan un
salto
cualitativo.