Stored procedures
Espero que me puedas ayudar con un problemita que tengo...
Tengo un problema al llamar un procedimiento almacenado en Sql desde Power Builder; requiero obtener un valor de salida desde el procedimiento almacenado, es un procedimiento para validar fechas, el parámetro de fecha se pasa como cadena para que se puedan comparar adecuadamente, pero al llamar el procedimiento me marca el sig. Error:
SQLState = 22005 Invalid character value for cast specification
Si lo pruebo sin valor de salida, el procedimiento se ejecuta adecuadamanente, así que el error es en la asignación de parámetros o algo así, ojalá que hayas visto un caso parecido y me puedas ayudar.
O si tienes algún ejemplo de cómo pasar parámetros output a un procedimiento almacenado en SQL y cómo retornarlos estaría muy bien...
* El código en el procedimiento almacenado es el sig:
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
* y el código en Power Builder es el sig:
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
Tengo un problema al llamar un procedimiento almacenado en Sql desde Power Builder; requiero obtener un valor de salida desde el procedimiento almacenado, es un procedimiento para validar fechas, el parámetro de fecha se pasa como cadena para que se puedan comparar adecuadamente, pero al llamar el procedimiento me marca el sig. Error:
SQLState = 22005 Invalid character value for cast specification
Si lo pruebo sin valor de salida, el procedimiento se ejecuta adecuadamanente, así que el error es en la asignación de parámetros o algo así, ojalá que hayas visto un caso parecido y me puedas ayudar.
O si tienes algún ejemplo de cómo pasar parámetros output a un procedimiento almacenado en SQL y cómo retornarlos estaría muy bien...
* El código en el procedimiento almacenado es el sig:
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
* y el código en Power Builder es el sig:
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
1