Stored Procedures in SQL
Soy Claudia, nuevamente, fíjate que más bien no te expliqué muy bien lo que ocurría con el procedimiento almacenado que tengo en SQL y su llamada desde Power Builder...
El problema no es la comparación de la cadena para poder hacer la función datediff, el problema es en como retornar el valor de salida del procedimiento almacenado, en este caso sería @resultado, requiero que con este parámetro me refleje si las fechas son o no iguales...
Te mando nuevamente el código, o si tu tienes algún ejemplo de cómo llamar un procedimiento con valores output y como retornarlo estaría excelente.
Gracias nuevamente. ISC. Claudia Judith López Rivera.
*** Código en SQL
CREATE PROCEDURE us_validar_fechas @fecha char(10), @resultado smallint output AS
declare @año integer,@mes integer,@dia integer
set @año = datediff(year,cast(rtrim(@fecha) as datetime),getdate())
set @mes = datediff(month,cast(rtrim(@fecha) as datetime),getdate())
set @dia = datediff(day,cast(rtrim(@fecha) as datetime),getdate())
if @año = 0 and @mes = 0 and @dia = 0
begin
set @resultado = 1
end
else
begin
set @resultado = 2
end
GO
*** Código en Power Builder
string fecha
integer resultado
fecha = string(today(),"yyyy-mm-dd")
resultado = 0
CONNECT USING SQLCA;
IF SQLCA.SQLCode = -1 THEN
MessageBox("SQL error1", SQLCA.SQLErrText)
END IF
declare proc_valid procedure for us_validar_fechas @fecha = :fecha, @resultado = :resultado output;
execute proc_valid;
IF SQLCA.SQLCode = -1 THEN
MessageBox("SQL error2", SQLCA.SQLErrText)
END IF
if resultado = 1 then
MessageBox("Resultado","son iguales")
end if
if resultado = 2 then
MessageBox("Resultado","no son iguales")
end if
El problema no es la comparación de la cadena para poder hacer la función datediff, el problema es en como retornar el valor de salida del procedimiento almacenado, en este caso sería @resultado, requiero que con este parámetro me refleje si las fechas son o no iguales...
Te mando nuevamente el código, o si tu tienes algún ejemplo de cómo llamar un procedimiento con valores output y como retornarlo estaría excelente.
Gracias nuevamente. ISC. Claudia Judith López Rivera.
*** Código en SQL
CREATE PROCEDURE us_validar_fechas @fecha char(10), @resultado smallint output AS
declare @año integer,@mes integer,@dia integer
set @año = datediff(year,cast(rtrim(@fecha) as datetime),getdate())
set @mes = datediff(month,cast(rtrim(@fecha) as datetime),getdate())
set @dia = datediff(day,cast(rtrim(@fecha) as datetime),getdate())
if @año = 0 and @mes = 0 and @dia = 0
begin
set @resultado = 1
end
else
begin
set @resultado = 2
end
GO
*** Código en Power Builder
string fecha
integer resultado
fecha = string(today(),"yyyy-mm-dd")
resultado = 0
CONNECT USING SQLCA;
IF SQLCA.SQLCode = -1 THEN
MessageBox("SQL error1", SQLCA.SQLErrText)
END IF
declare proc_valid procedure for us_validar_fechas @fecha = :fecha, @resultado = :resultado output;
execute proc_valid;
IF SQLCA.SQLCode = -1 THEN
MessageBox("SQL error2", SQLCA.SQLErrText)
END IF
if resultado = 1 then
MessageBox("Resultado","son iguales")
end if
if resultado = 2 then
MessageBox("Resultado","no son iguales")
end if
1 Respuesta
Respuesta de alexm
1