Club Delphi  
    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 Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-05-2003
ElCherchu ElCherchu is offline
Miembro
 
Registrado: may 2003
Posts: 76
Poder: 21
ElCherchu Va por buen camino
Ver resultado de un Stored Procedure desde Delphi

Hola amigos!!!

Estoy iniciando con el uso de los Procedimientos Almacenados y como todos los inicios son dificiles necesito sus ayudas.

Copie dos procedimientos almacenados que encontré en un libro como sigue:

set term ^;
CREATE PROCEDURE EsPrimo(Numero Integer)
Return (Respuesta Integer) as
Declare variable I Integer;
Begin
I = 2;
While (I < Numero) do
begin
if (cast((Numero / I) as Integer) * I = Numero) then
Begin
Respuesta = 0;
Exit;
End
I = I + 1;
end
Respuesta = 1;
end ^
set term ;^

y el otros asi:

set term ^;
create preocudure Primos (Total Integer)
return (primo Integer) as
declare variable I integer;
declare variable Respuesta Integer;
begin
I = 0;
primo = 2;
while (I < Total) do
begin
execute procedure Esprimo Primo
returning_values Respuesta;
if (respuesta = 1) then
begin
I = I + 1;
suspend; /* Nuevo numero*/
end
primo = primo + 1;
end
end ^
set term ;^

bueno esto me devuelve todo los numeros primo encontrados desde 2 hasta la cantidad que digite.

Lo ejecuto desde el ISQL de interbase y me funciona perfectamente, lo hago asi:

SELECT * FROM PRIMOS(100)

Esto según Cantú, y funciona.

Bueno el caso es que quiero ejecutar este SP desde delphi y no se como hacerlo.

Me gustariá que me dijeran cuales componentes IBXs debo usar para esto, y que lineas de cógido debo incluir en ellos.

Cuento con su ayuda, gracias desde ya..

Si lo desean pueden darme sus ayudas poniendo otros ejemplo ...

ElCherchu.....
Responder Con Cita
  #2  
Antiguo 22-05-2003
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Bueno, Seleccionas el Componente TStoreProcedure y en su propiedad DataBaseName pones el Alias de tu BD y luego seleccionas el
StoreProcedure de tu Base de datos en su propiedad Storeprocedure...Despues clickeas en la propiedad
Params para verificar de que esten todos los
parametros del procedimiento almacenado que
seleccionaste en tu caso seleccionarias el procedimiento "EsPrimo".

Espero que esto sea lo que necesites realmente y te sirva.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 22-05-2003
ElCherchu ElCherchu is offline
Miembro
 
Registrado: may 2003
Posts: 76
Poder: 21
ElCherchu Va por buen camino
Hola Jhonny,

Gracia por tu pronta respuesta, ya hice lo que me dijiste pero al ejecutarlo me dice que debo pasar valores a los parametros, cuando le pongo algun valor no me trae ningun resultado.

Con cuales componentes puedo ver los datos?,

¿Que hago, para que funcione?

Gracias de antemanos..

ElCherchu...
Responder Con Cita
  #4  
Antiguo 22-05-2003
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Thumbs up

Ahh, Claro...

Debes Bajar un Componente TQuery y
En su propiedad Databasename pones el
Alias de tu BD...

En su propiedad SQL escribes:
Código:
SELECT * FROM PRIMOS(100)
Luego en algun evento (puede ser en el Onclick de un boton), escribes el nombre de tu TQuery e invocas su evento Open.

Por ejemplo:
Código:
                    procedure TForm1.Boton1Click(sender :TObject);
                    begin
                        Query1.Close;
                        Query1.Open; 
                    end;
Y listo, espero te funcione ahora si.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #5  
Antiguo 22-05-2003
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Se me olvidaba...

Debes Conectar Un DataSource al Query y un Componente Data Control (Puede ser un TDBText) Al datasource...y listo.

Espero te sirva de algo mi ayuda...de lo contrario no dudes en preguntar de nuevo
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #6  
Antiguo 23-05-2003
ElCherchu ElCherchu is offline
Miembro
 
Registrado: may 2003
Posts: 76
Poder: 21
ElCherchu Va por buen camino
Hola Jhonny!!

Ahora si funciona perfectamente, gracias por todo.

Mil gracias...

ElCherchu
Responder Con Cita
  #7  
Antiguo 10-06-2003
FlacoNet FlacoNet is offline
Miembro
 
Registrado: jun 2003
Posts: 38
Poder: 0
FlacoNet Va por buen camino
hola a todos...puse mi mensaje aqui mismo por que me parece que es muy similar al que se estuvo desarrollando.
Lo que desea es ejecutar un procedimiento almacenado de las mismas caracteristicas aqui mencionadas pero bajo Dbexpress y no bajo DBE como veo que lo estas haciendo. Es decir..con los componentes TSQLQuery o el SQLStoredProcedure. Lo que hago es lo mismo que se puso en esta conversacion pero me da un error de lectura en la memoria cuando intento abrir la consulta.
Lo que hice fue descargar una actualizacion para el Dbexpress que dice que actualiza el archivo sobre el cual me da error DBEXPINT.dll pero no me da resultado y sigo teniendo el error.
Agracezco toda clase de ayuda por que la verdad que me pase dias tratando de encontrar alguna solucion sin llegar a nada.
Trabajo con Delphi 6 Ent y tengo tambien los parches instalados
e interbase 7
Responder Con Cita
Respuesta



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 16:32:00.


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