Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Ver resultado de un Stored Procedure desde Delphi (https://www.clubdelphi.com/foros/showthread.php?t=724)

ElCherchu 22-05-2003 18:53:09

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.....

jhonny 22-05-2003 19:05:03

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.

ElCherchu 22-05-2003 19:13:45

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...

jhonny 22-05-2003 19:27:14

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.

jhonny 22-05-2003 19:30:34

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;)

ElCherchu 23-05-2003 16:56:05

Hola Jhonny!!

Ahora si funciona perfectamente, gracias por todo.

Mil gracias...

ElCherchu

FlacoNet 10-06-2003 09:51:55

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


La franja horaria es GMT +2. Ahora son las 01:56:48.

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