PDA

Ver la Versión Completa : Manejo de Procedimientos Almacenados Sql Server


TelloClos
23-06-2003, 23:18:04
Saludos!

necesito poder manejar parametros de salida de un procedimiento almacenado desde delphi que ha sido creado en sql server 2000 la declaracion esta hecha de la siguiente forma es algo simple:

create procedure Prueba @salida vrchar(20) as output
as
set @salida = 'Probando salida de datos'
go

el procedimiento no ha sido creado a traves de deplhi sino directamente en el sql. primero que todo ¿ esta bien declarada este parametro de salida?

ahora deseo poder llamarlo desde delphi para poder saber si rescata algún valor asignandolo a una caja de texto, pero no se con que porpiedad del objeto procedimiento almacenado se recata , según yo deberia manejarlo como si fuera una consulta o sea podria haber podido recatarlo colocando nombreprocedimiento['salida'] pero no pasa nada .
la conexion funciona bien, y al clickear para ver la lista de parametros reconocidos me muestra este parametro salida dentro de la lista.

espero me puedan ayudar.
de ante mano gracias.

__cadetill
24-06-2003, 00:57:01
Te explico como lo haria yo atacando a Interbase (no creo que cambie mucho la cosa) --> para tu caso, supongo que utilizaras ADO

1.- Pon un TIBDatabase apuntando a tu BD (en tu caso supongo que un TADOConection)
2.- Pon un TIBStoredProc (en tu caso supongo que un TADOStoredProc)
3.- Asignale la propiedad StoredProcName (en tu caso ProcedureName)
4.- En la propiedad Params tendras todos los paramentros de entrada y salida (en ADO Paramaters)
5.- Con un doble clic encima del TIBStoredProc, podras asignar los parametros de salida (como si fueran campos persistentes de una tabla o query)
6.- Haria un IBStoredProc.ExecProc;
7.- El resultado se lo asigno a lo que quiera : Edit1.Text := IBStoredProc.ParamByName('LoQueDevuelve').AsString;

Espero te sirva

TelloClos
24-06-2003, 02:32:16
Hola y gracias!

bueno, si ocupo los objetos ado, el problema no lo tenia en la conexion eso esta todo ok. como lo mencionaba en la primera cita
textual me muestra los parametrso creados y todo.
la propiedad parambyname no esta disponible cuando ocupas objetos ado (eso lo lei de una ayuda en internet), y lo que habia encontrado por ahí es que me se debia ocupar procedimiento.params['Parametro'].asstring pero tampoco estaba dicponible en esta version 7 del Delphi, bueno la cosa es que seguimos investigando con mis compañeros de trabajo y por Fin logramos descubrir el secreto la cosa es Procedimiento.parameters.item[indice].value

de todas formas por supuesto ¡muchas gracias! por haber atendido mi consulta en tan poco tiempo, ademas dicen por ahí que "cuando cuentas tu problema a alguien te das cuenta del error que estas cometiendo" ( o algo por el estilo:) )

se que seguire molestandolos porque estamos ( yo y mis compañeros de trabajo) recien metiendonos en este mundo delphiano

nuevamente muchas gracias por la atención y ojala que a algunos de los visitantes a este hilo le sirva nuestro pequeño descubrimiento

nos vemos!


6.- Haria un IBStoredProc.ExecProc;
7.- El resultado se lo asigno a lo que quiera : Edit1.Text := IBStoredProc.ParamByName('LoQueDevuelve').AsString;

Espero te sirva [/B][/QUOTE]

TelloClos
25-06-2003, 02:36:02
hola nuevamente!


como puedo manejar un conjunto de datos a traves de un procedimiento almacenado?
partiendo de como deberia ser el tipo de parametro de salida que declarar en el procedimiento al crearlo hasta como
poder lleguar a mostrarlo en un datasource ( segun yo igual como se hace con Query pero no me funciona )

de ante mano muchas gracias!