
Ayuda con Stored procedure
Publicado por Rogger (144 intervenciones) el 10/09/2008 18:18:55
buendia a todos los foristas, tengo el siguiente procedimiento almacenado:
CREATE procedure usp_cod_predio
--código de la propiedad, donde las tres primeras letras son de la ciudad, los dos siguientes
--números son al año que corresponden, los dos siguientes al mes y los siguientes 3 el correlativo
@ciudad varchar (20),
@codigo char (10) output
as
declare @mes char (2)
set @codigo = (select max(right (id_predio, 3)) from vp_predio
where year(fecha_registro) = year(Getdate()) and ciudad = @ciudad)
if @codigo is null set @codigo = 0
set @codigo = @codigo + 1
if @codigo < 10 set @codigo = '0' + @codigo
if @codigo < 100 set @codigo = '0' + @codigo
set @mes = month(getdate())
if @mes < 10 set @mes = '0' + @mes
set @codigo = upper(left(@ciudad, 3)) + right(year(getdate()), 2) + @mes + @codigo
-- probando
declare @XX char (10)
exec usp_cod_predio 'Trujillo', @XX output
select @XX
como puedo ejecutarlo desde power builder he probado lo siguiente, pero no me sale, me sale un error que dice: "Valor de caracter no válido para rdpecificacion cast", que estoy haceindo mal.
string ciudad, codigo
ciudad = 'Huancayo'
DECLARE usp_prueba PROCEDURE FOR usp_cod_predio
ciudad = :ciudad,
codigo = :codigo output
using sqlca;
execute usp_prueba;
if SQLCA.SQLCode = -1 then
MessageBox("SQL error", SQLCA.SQLErrText)
return
else
this.text = codigo
end if
gracias por su ayuda de antemano.
CREATE procedure usp_cod_predio
--código de la propiedad, donde las tres primeras letras son de la ciudad, los dos siguientes
--números son al año que corresponden, los dos siguientes al mes y los siguientes 3 el correlativo
@ciudad varchar (20),
@codigo char (10) output
as
declare @mes char (2)
set @codigo = (select max(right (id_predio, 3)) from vp_predio
where year(fecha_registro) = year(Getdate()) and ciudad = @ciudad)
if @codigo is null set @codigo = 0
set @codigo = @codigo + 1
if @codigo < 10 set @codigo = '0' + @codigo
if @codigo < 100 set @codigo = '0' + @codigo
set @mes = month(getdate())
if @mes < 10 set @mes = '0' + @mes
set @codigo = upper(left(@ciudad, 3)) + right(year(getdate()), 2) + @mes + @codigo
-- probando
declare @XX char (10)
exec usp_cod_predio 'Trujillo', @XX output
select @XX
como puedo ejecutarlo desde power builder he probado lo siguiente, pero no me sale, me sale un error que dice: "Valor de caracter no válido para rdpecificacion cast", que estoy haceindo mal.
string ciudad, codigo
ciudad = 'Huancayo'
DECLARE usp_prueba PROCEDURE FOR usp_cod_predio
ciudad = :ciudad,
codigo = :codigo output
using sqlca;
execute usp_prueba;
if SQLCA.SQLCode = -1 then
MessageBox("SQL error", SQLCA.SQLErrText)
return
else
this.text = codigo
end if
gracias por su ayuda de antemano.
Valora esta pregunta


0