Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-02-2004
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Poder: 24
Giniromero Va por buen camino
Gracias Cadetill,

La construcción de procedimientos, en mi caso no es
maravillosa, pues no tengo mucha esperiencia, pero
funciona ok, con sus parámentros de entrada, de salida,...
pero hay algo que no entiendo, a pesar de haber leido el
hilo que me apuntaste.

Para llamar al procedimiento desde el programa, ¿no
puedo usar el TIbStorePRoc?, tengo que hacerlo desde otro
tipo de conexión? por que la verdad, yo estaba usando
TbDataSet, pero una de las cosas que me interesan, es
poder guardar registros nuevos a través de ese
procedimiento, vamos, que no sea sólo "lectura", y esta es
la razón por la que me pasé a usar TIBStoreProc.


Probé a conectar un TIbDataSet, cuando no se le insertaba
parámetros de entrada, y se abría y se mostraban los
datos en el dbgrid, pero esa opción no me vale, pues,
como ya dige ante, tengo que poder insertar registros
nuevos, y usando el TIBDataSet no se puede.

De todos modos, creo que no he entendido bien lo que le
están recomendando en ese hilo.

por que ese de:
Código:
 utilizar procedimientos para filtrar una tabla (o una join 
sobre varias tablas) no es el procedimiento habitual ni el 
recomendado, para eso tienes la cláusula WHERE.
¿Que quiere decir esto? ¿para que se puede usar entonces?
pues, o no lo he entendido bien, o me descoloca la idea
que tenía de los procedimientos.

Muchas gracias por la ayuda,

Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :)

Última edición por Giniromero fecha: 24-02-2004 a las 13:50:20.
Responder Con Cita
  #2  
Antiguo 24-02-2004
Avatar de Nuria
Nuria Nuria is offline
Miembro
 
Registrado: may 2003
Posts: 531
Poder: 24
Nuria Va por buen camino
Hola Virginia!

Código:
FrmDModule.TbEconoPago.ParamByName('numaluACT').AsInteger := FrmDModule.TbAlumnosNUMALU.AsInteger;
Has hecho una parada para ver que valor le estas mandando al procedimiento, ya que me comentabas que siempre te salía 'No existen efectos a pagar !!!' . Es una sugerencia porque no sé donde te puede estar fallando, te lo seguiré mirando.

Saludos!
Responder Con Cita
  #3  
Antiguo 24-02-2004
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Poder: 24
Giniromero Va por buen camino
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á :)
Responder Con Cita
  #4  
Antiguo 24-02-2004
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Poder: 24
Giniromero Va por buen camino
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á :)
Responder Con Cita
  #5  
Antiguo 24-02-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 26
guillotmarc Va por buen camino
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).
Responder Con Cita
  #6  
Antiguo 25-02-2004
Giniromero Giniromero is offline
Miembro
 
Registrado: may 2003
Ubicación: Madrid
Posts: 296
Poder: 24
Giniromero Va por buen camino
Hola,


Cita:
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)


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á :)
Responder Con Cita
  #7  
Antiguo 25-02-2004
Avatar de Nuria
Nuria Nuria is offline
Miembro
 
Registrado: may 2003
Posts: 531
Poder: 24
Nuria Va por buen camino
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:
¿cuando se usa el TIBStoredPRoc?
Lo puedes utilizar, cuando por ejemplo, tengas que hacer un procedimiento, nunca mejor dicho, que se repite muchas veces , como calcular totales,ect.
Ejecutas el TIBStoredProc.

No se si me explicado bien...
Responder Con Cita
  #8  
Antiguo 25-02-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 27
__cadetill Va por buen camino
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
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 09:18:07.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi