Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-12-2020
juggern juggern is offline
Miembro
 
Registrado: jun 2020
Posts: 79
Poder: 4
juggern Va por buen camino
Valor de parámetro de salida ADO Stored Procedure

Buenos días chicos,

No se si este tema iría exactamente aquí, creo que si.

Veréis, tengo un procedimiento almacenado creado en SQL que devuelve un valor en uno de los parámetros:

Código SQL [-]
ALTER PROCEDURE [dbo].[PR_calculacontador]
   @ejercicio int,
   @local varchar(2),
   @contador int OUTPUT

Yo ejecuto este procedimiento almacenado desde delphi y lo ejecuta bien, hace los procesos que tiene que hacer dentro del pa y todo.
El problema que tengo que es quiero guardar en una variable el valor de @contador, porque tengo que usarlo más adelante, pero no consigo acceder a ese valor.
Hago lo siguiente:

Código Delphi [-]


       cont:= 0;

       ADOStoredProc1.ProcedureName:= 'PR_calculacontador';
       ADOStoredProc1.Parameters.Clear;
       ADOStoredProc1.Parameters.AddParameter.Name:= 'ejercicio';
       ADOStoredProc1.Parameters.ParamByName('ejercicio').Value := 2020;
       ADOStoredProc1.Parameters.AddParameter.Name:= 'local';
       ADOStoredProc1.Parameters.ParamByName('local').Value := 'ES';
       ADOStoredProc1.Parameters.AddParameter.Name:= 'contador';
       ADOStoredProc1.Parameters.ParamByName('contador').Value := cont;
       ADOStoredProc1.ExecProc;

       cont := ADOStoredProc1.Parameters.ParamByName('contador').Value;

El procedimiento lo ejecuta, pero no se bien como acceder al valor que devuelve contador porque la variable cont no la actualiza, me devuelve siempre 0.

Muchas gracias

Un saludo
Responder Con Cita
  #2  
Antiguo 21-12-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Seguramente "Fields[0].AsInteger;"
Responder Con Cita
  #3  
Antiguo 21-12-2020
juggern juggern is offline
Miembro
 
Registrado: jun 2020
Posts: 79
Poder: 4
juggern Va por buen camino
Hola!

He probado y nada, me da error List Index out of bounds.

He probado también
Cita:
cont := ADOStoredProc1.Parameters.ParamValues['contador'];
y poniendo @ delante de los parámetros pero siempre me devuelve 0

Un saludo

Última edición por juggern fecha: 21-12-2020 a las 11:21:46.
Responder Con Cita
  #4  
Antiguo 21-12-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
A ver si te sirve esto.
Responder Con Cita
  #5  
Antiguo 22-12-2020
juggern juggern is offline
Miembro
 
Registrado: jun 2020
Posts: 79
Poder: 4
juggern Va por buen camino
Buenos días,

Nada, no consigo que funcione. Le daré vueltas para hacerlo de otra manera.

Muchas gracias!
Responder Con Cita
  #6  
Antiguo 22-12-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Poco podemos hacer si no muestras el código.
Responder Con Cita
  #7  
Antiguo 08-01-2021
lgarcia lgarcia is offline
Miembro
 
Registrado: jul 2004
Posts: 479
Poder: 20
lgarcia Va por buen camino
Valor de parametro de salida de un ADO SP

hola: aunque no muestras el codigo interno del SP si pudieras en vez de un parametro externo que cogieras ese valor (contador) con un SELECT entonces en Delphi

Código Delphi [-]
with ADOStoredProc1 do
begin 
  Close;
  Parameter.ParamByName('@ejercicio').Value:= 2020;
  Parameter.ParamByName('@local').Value:= 'ES';
  Open;
end;

Entonces podrias capturar el valor de cont:= ADOStoredProc1contador.Vaue;

Saludos
Luis
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Stored Procedure - Parametro con valor default en Oracle Inge022 Oracle 3 20-10-2015 22:05:05
Parametros de salida de un stored procedure y valor por defecto FGarcia Firebird e Interbase 8 05-03-2015 01:54:57
Valor en un parametro de Salida betto MySQL 2 14-07-2010 20:02:10
Problema con un parámetro de salida en un Stored Procedure taote Firebird e Interbase 5 09-06-2004 20:41:38
Parametro Tipo BIGINT Stored Procedure hibero Firebird e Interbase 5 13-04-2004 19:49:31


La franja horaria es GMT +2. Ahora son las 09:33:55.


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