![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Hola a tod@s, he vuelto a mirarme lo que pone en "developer's guide" respecto de los procedimientos, y ahora si que no sé que pensar. Por un lado vosotros me comentais que no hay que poner el TIBStoredProc.Active := True; por otro lado leo que: "For Stored procedures that return a cursor, use the active property or the open method" Además, veo como el mismo procedimiento, (sin parametros input), que estoy utilizando, me muestra los registros en el dbgrid, cuando uso un dataset para mostrarlos, pero no parece abrirse cuando ese mismo procedure lo intento mostrar en el mismo DBgrid, usando un tIBStoredProc. Es como si no se abriese, de hecho, tengo que ejecutar una inserción despues de mostrar el form con el dbgrid que tendría que mostrarme los registros, y al ir a hacer dicha insercción, me dice que la tabla esta cerrada. Por favor, ¿alguien podría ponerme un ejemplo, de uso de este objeto o decirme como hacer? Estoy empantanada mientras no lo consigua poner en marcha. Muchas gracias por vuestra ayuda, Virginia ![]()
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
|
#2
|
|||
|
|||
|
Hola Nuria,
Le estoy pasando el valor del alumno que está actualmente activo. El "FrmDModule.TbAlumnosNUMALU.AsInteger;" aparentemente funciona ok. Si le digo que : showmessage (FrmDModule.TbAlumnosNUMALU.asstring); efectivamente me devuelve el valor del alumno activo. De todos modos, eso es lo de menos, por que tambiem me da problemas si hago que no aparezca esa variable ni en el servidor de bD, ni en la aplicación. Creo sinceramente, que el problema es que NO se está abriendo el procedimiento o que no stoy usando bien el TIBStoredProc. ¿ha usando alguien alguna vez el TIbStoredProc para mostrar registros que devuelve en un DBgrid? Por que es eso, básicamente lo que necesito. En tal caso, ¿como lo abría/ponía en funcionamiento, vamos, como mostrar en ese DBGrid, los datos que, por lo menos me muestra sin problemas en el IBExpert cuando ejecuto este procedimiento? Gracias a todos por la ayuda, Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
|
#3
|
||||
|
||||
|
Hola.
En dbExpress no se puede abrir un SP, si devuelve datos, para abrirlos en un dataset tienes que usar un Query y lanzar una consulta del tipo : select * from Procedimiento(:Parametro) Imagino que en IBX es parecido.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
|
#4
|
|||
|
|||
|
Hola,
Cita:
Una vez más disculpaz por mi torpeza, pero : "¿si devuelve datos? " Pensaba que todos los procedimientos, de un modo u otro, devolvían datos. ¿Te refieres a si devuelve registros?, ¿hay procedimientos que no devuelvan ningún dato? "¿para abrirlos en un dataset tienes que usar un Query y lanzar una consulta?" A ver que me aclare. ¿Tengo que usar un dataSet en el que ponga, dentro de la propiedad del SelectSQL, código como el que tu me pasas?, ¿A que te refieres con lanzar una consulta? y con eso, ¿podré insertar registros usando ese DataSet?, entonces, ¿cuando se usa el TIBStoredPRoc? Muchas gracias por vuestra paciencia y ayuda. Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
|
#5
|
||||
|
||||
|
Hola!
No había caido, Marc tiene razón. en los IBX es igual. En el IBDataSet en la propiedad SelectSQL : select * from Procedimiento(:Parametro) y funciona perfectamente, creo que en tú caso deberías ponerlo en la propiedad InsertSQL, nunca he usado esta propiedad con procedimientos, pero supongo que no será problema. Cita:
Ejecutas el TIBStoredProc. No se si me explicado bien... ![]() |
|
#6
|
|||
|
|||
|
De lo que no estoy seguro es de que los datos que devuelva un SP sean también de escritura (yo diría que no, pero no lo aseguro). Si estubiera en lo cierto, con un TIBQuery tienes más que suficiente para tus menesteres
|
|
#7
|
||||
|
||||
|
Hola.
Para complementar lo que han dicho los compañeros, solo comentar que un procedimiento que devuelve datos (selectable stored proc), es aquel que devuelve un conjunto de filas (como una consulta o una vista). Se utilizan cuando tienes que realizar una consulta muy compleja que no puedes condensar en una sentencia SELECT. Los procedimientos almacenados que no devuelven datos, són aquellos que realizan una acción, como por ejemplo tu caso en que insertan un registro, es decir un procedimiento que ejecuta sentencias del tipo INSERT INTO, ... En el primer caso es cuando hay que leer los datos devueltos, abriendo una consulta con un select * from PROCEDIMIENTO, en el segundo caso es cuando se ejecuta un procedimiento mediante un IBStoredProc. Saludos. Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|