The version for Sybase is ASE 12.5.3, DBA told me this opcion is dangerous because if a transaction is dead lock is impossible kill it and the only solucion is re-start the server.
My code:
create proc dbo.sps_saldo_consulta_ad2
@as_usuario varchar(10),
@ai_tipo integer,
@ai_nombres integer = null,
@ai_consoli integer = null
AS
declare
@ls_usuario varchar(20),
@ls_parametro varchar(255),
@ls_sucursal varchar(3),
@ls_moneda varchar(2),
@ls_mayor varchar(3),
@ls_analitico varchar(15),
@ls_futuro varchar(10),
@ls_pasado varchar(10),
@li_sucursal integer,
@li_mayor integer,
@ldt_futuro datetime,
@ldt_pasado datetime,
@ls_oficina varchar(255),
@ldt_switch datetime,
@ld_minimo numeric(20,4),
@ld_maximo numeric(20,4),
@ld_switch numeric(20,4),
@ls_minimo varchar(22),
@ls_maximo varchar(22),
@ls_cuenta varchar(18)
DECLARE
@ldt_inicio
@ldt_fin
@ln_registros double precision
begin
select @ldt_inicio = getdate()
select @ls_usuario = @as_usuario, --Obtiene el nombre del usuario
/* execute ctrlcontable.dbo.sps_ofici
select @ls_oficina = rtrim(@ls_oficina)
print "permisos en oficina '%1!'", @ls_oficina
*/
/*if exists (select 1 from OFICINA WHERE (charindex(","+ofi_identif
begin*/
select @ls_oficina = '*' --Oficina Privilegiada
--end
create table #SALDO_RESULTADO
(fecha datetime,
sucursal int,
moneda char(2),
mayor int,
analitico varchar(15),
naturaleza int ,
cargo numeric(20,4),
abono numeric(20,4),
saldo numeric(20,4),
nombre varchar(60) NUll
)
SELECT con_parametro
INTO #CONSULTA_USUARIO
FROM CONSULTA
WHERE usu_identificador = @ls_usuario
AND con_tipo = @ai_tipo
ORDER BY con_subconsulta
DECLARE SIG_CONSULTA CURSOR FOR --Cursor que extrae las consultas definidas para un tipo y un usuario
SELECT con_parametro
FROM #CONSULTA_USUARIO
OPEN SIG_CONSULTA
FETCH SIG_CONSULTA
INTO @ls_parametro
WHILE @@sqlstatus = 0
BEGIN
--print "consulta de fecha '%1!' --> '%2!' --> '%3!' --> '%4!' --> '%5!' --> '%6!'", @ldt_futuro,
--
--
--
ELSE IF @ai_tipo = 2
ELSE IF @ai_tipo = 3
--print "pasado '%1!' futuro '%2!' ",@ls_pasado, @ls_futuro
--print "pasado '%1!' futuro '%2!' ",@ls_pasado, @ls_futuro
--print "maximo '%1!' '%2!'",@ld_maximo,@ld_mini
--print "-->pasado '%1!' futuro '%2!' ",@ls_pasado, @ls_futuro
--print "periodo de fechas"
ELSE IF @ai_tipo = 17
END
exito:
if @ai_nombres = 1 execute dbo.sps_saldo_nombres @ai_tipo
create table #NOREPETIDOS
if @ai_consoli = 1
IF @ai_tipo = 17
else
IF @ai_tipo = 17
select @ln_registros = @@rowcount
select @ldt_fin = getdate()
execute dbo.spi_bitacora
@ldt_inicio
@ldt_fin
@ls_usuario
@ai_tipo
@ln_registros
error:
salir:
CLOSE SIG_CONSULTA
DEALLOCATE CURSOR SIG_CONSULTA
drop table #SALDO_RESULTADO
drop table #CONSULTA_USUARIO
end
Main Topics
Browse All Topics





by: Joe_WoodhousePosted on 2006-03-21 at 03:58:52ID: 16246051
It would be helpful if we could see the code, and know what product (Sybase makes three databases) and version...?
But if this is ASE (any version), then run this as someone with DBA (sa_role) permissions:
use master
go
sp_dboption tempdb, "allow ddl in tran", true
go
use tempdb
go
checkpoint
go