Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MS SQL Server (https://www.clubdelphi.com/foros/forumdisplay.php?f=23)
-   -   Obtener el parametro de salida de una funcion de Sql en Delphi (https://www.clubdelphi.com/foros/showthread.php?t=82918)

titooo 24-04-2013 19:17:36

Obtener el parametro de salida de una funcion de Sql en Delphi
 
Buenas, tengo un problema con tratar de obtener el parametro de salida que utilizo en una funcion de SQL Server 2008 y llevarla a una variable en Delphi 7.
EJ= Mi funcion verifica que una clave ingresada por el usuario se encuentra en la tabla de SQL.
sintaxis en SQL:

function validar
(@codigo numeric (2))
returns varchar (10)
as
begin
declare @enc varchar (10)
if (select sigla
from sit_iva
where codigo=@codigo)=null

set @enc='no'

else
set @enc='si'
return @enc
end;

Posiblemente tenga un problema con el desarrollo de la funcion, ahora como hago en Delphi para poder asignarle a una variable "Encontrado" de tipo string, el resultado que quedo almacenado en la funcion utilizada que se denomina "@enc". Muchas gracias

Casimiro Notevi 24-04-2013 19:20:25

Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración :)

Recuerda poner los tags al código fuente, ejemplo:



Gracias :)


Mira los enlaces del final de página.

titooo 24-04-2013 19:24:50

no te entendi mucho, pero trateare de hacer eso. Que quiere decir que mi hilo ha sido movido? Gracias

ecfisa 24-04-2013 19:31:12

Cita:

Empezado por titooo (Mensaje 459209)
no te entendi mucho, pero trateare de hacer eso. Que quiere decir que mi hilo ha sido movido? Gracias

Hola titooo.

Casimiro se refiere al uso de las etiquetas cuando incluyes código como bién lo explica con la imágen que te adjuntó. Fijate la diferencia del mismo con etiquetas:
Código SQL [-]
function validar (@codigo numeric (2))
returns varchar (10)
as
begin
  declare @enc varchar (10)
  if (select sigla
    from sit_iva
    where codigo=@codigo)=null
    set @enc='no'
  else
    set @enc='si'
return @enc
end;

El hilo lo he movido yo por que el tema no tiene nada que ver con Delphi/web y lo direccioné al foro que corresponde: MS SQL Server.

Saludos. :)

olbeup 17-06-2013 10:35:03

Cita:

Empezado por titooo (Mensaje 459207)
Buenas, tengo un problema con tratar de obtener el parametro de salida que utilizo en una funcion de SQL Server 2008 y llevarla a una variable en Delphi 7.
EJ= Mi funcion verifica que una clave ingresada por el usuario se encuentra en la tabla de SQL.
sintaxis en SQL:

function validar
(@codigo numeric (2))
returns varchar (10)
as
begin
declare @enc varchar (10)
if (select sigla
from sit_iva
where codigo=@codigo)=null

set @enc='no'

else
set @enc='si'
return @enc
end;

Posiblemente tenga un problema con el desarrollo de la funcion, ahora como hago en Delphi para poder asignarle a una variable "Encontrado" de tipo string, el resultado que quedo almacenado en la funcion utilizada que se denomina "@enc". Muchas gracias

Hola tatooo

Lo que tienes que hacer es crear una SQL que llame a tu función, eje.

Código Delphi [-]
...
var
  lResult: Boolean;
begin
  with TADOQuery.Create(Self) do
  begin
    Connection := ADOConnection1;

    SQL.Add('SELECT');
    SQL.Add('    dbo.validar(7) AS ACCESO');

    Open;

    lResult := FieldByName('ACCESO').AsBoolean;
  end;

  if lResult then
    ShowMessage('Usuario encontrado')
  else
    ShowMessage('Usuario no encontrado');
end;

Un saludo,

fjcg02 17-06-2013 11:23:48

Creo que es más fácil usar una ADOStoreProcedure.

Le pones el procedimiento, le das valores de los parámetros de entrada, ejecutas el procedimiento ( ADOStoreProcedure.Execute ) y asignas el valor del parámetro de salida a una variable ( salida:= ADOStoreProcedure.ParamsByName('Salida').AsString ).

Te lo he puesto de memoria, pero básicamente es así.

Un saludo

olbeup 17-06-2013 16:35:46

Siempre he utilizado ADOQuery para todo y nunca he utilizado ningún otro componente que no sea ADOQuery en conjunción con ADOConnection y me ha ido de cine, claro que para gustos colores.

Un saludo.


La franja horaria es GMT +2. Ahora son las 10:42:10.

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