![]() |
![]() |
| 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
|
|||
|
|||
|
Ayer mismo Marc Guillot respondio eso mismo.
A mi en Firebird me funciona perfecto. Hola. Naturalmente. Ejplo. 1 : Un parámetro de entrada al procedimiento almacenado : execute procedure Procedimiento(:PARAMETRO) Ejplo. 2 : Un parámetro de entrada y otro de salida : execute procedure Procedimiento(:PARAM_ENTRADA) returning_values :PARAM_SALIDA Ejplo. 3 : Un procedimiento que devuelve varios registros, con un parámetro de entrada : select * from Procedimiento(:PARAMETRO) Espero que ahora lo veas más claro.
__________________
Gabriel |
|
#2
|
|||
|
|||
|
Muy buenas Gabriel, gracias por tu interés pero creo que no me has comprendido o no me he sabido explicar bien.
Los procedimientos almacenados ya los tengo hechos y comprobados. Lo que quiero es invocarlos mediante componentes ADOQuery para no tener que modificar mucho mi código. Ejemplo: Código:
// SqlText:='SELECT Descripcion FROM Usuarios WHERE Usuario='+QuotedStr(Codigo);
SqlText:='SELECT * FROM BuscarDescripcionTrabajador ('+QuotedStr(Codigo)+')';
ADOQuery4.SQL.Clear;
ADOQuery4.SQL.Add(SqlText);
try
ADOQuery4.Open;
{$I '.\includes\ExceptErrorBD.inc'}
end;
Al intentar ejecutar este código da el error: "El nombre del objeto BuscarDescripcionTrabajador no es válido".Me he cerciorado que el error no está en el paso de parámetros, sino en que no me admite utilizar el nombre de un procedimiento donde él espera una tabla o vista. ¿sabe alguien cómo hacerlo o es que en SQL Server no se puede? Voy a seguir haciendo pruebas. Ciao bambinos.
__________________
Rafita. |
|
#3
|
|||
|
|||
|
He estado viendo el hilo que comentas, no lo había encontrado porque le falta una "d" a la palabra StoredProcedure, menos mal que tu lo tenías en mente y me lo has dicho rápidamente.
He probado todas las opciones que comentas y alguna cosa más, pero siempre me da el mismo error. Voy a comer y luego sigo probando. Saludos.
__________________
Rafita. |
|
#4
|
||||
|
||||
|
Hola.
En SQL Server pruebalo de esta forma : exec NombreProcedimiento :PARAMETRO Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
|
#5
|
|||
|
|||
|
Muchas gracias Guillotmarc por tu respuesta, pero a pesar de verla un montón de veces no era capaz de hacerle funcionar: me empeñaba en meterle paréntesis, dos puntos y comillas por todas partes.
Al final volví a ver tu mensaje y lo ví clarito. Pongo el código por si alguien tuviese el mismo problema. Código:
// SqlText:='SELECT Descripcion FROM Codigos WHERE (Tipo='+QuotedStr(Tipo)+' AND Codigo='+QuotedStr(Codigo)+')';
ADOQuery3.SQL.Clear;
ADOQuery3.SQL.Add('Exec BuscarDescripcionCodigo '+Tipo+', '+Codigo);
try
ADOQuery3.Open;
__________________
Rafita. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|