Gracias Maxi ! Voy a trabajar con esta idea, cualquier cosa te cuento.
Saludos.


-----Mensaje original-----
De: dbms@mug.org.ar [mailto:[EMAIL PROTECTED] En nombre de Maxi Accotto
Enviado el: Lunes, 25 de Febrero de 2008 08:10 a.m.
Para: [EMAIL PROTECTED]
Asunto: [dbms] Consulta por bloqueos

Hola, disculpa pero se me paso. El tema es asi, vos tomas el ultimo
numero verdad? pero el tema es como lo haces, recorda que para hacer
un bloqueo necesitas usar inert update y delete. Aca te paso un
ejemplo de como debes usar bloqueos y una tabla numeradora para que
NUNCA obtengas dos numeros iguales (ojo, al ejemplo le falta el
control de errores)

use northwind
go

create table #numeradora (numero int)
go

insert into #numeradora values (1)

create table #facturas (numero int, fecha datetime)
go

-- nuevo numero con bloqueos para no repetir en dos lugares

declare @numero_nuevo int

begin tran

update #numeradora
set @numero_nuevo = numero = numero+1

insert into #facturas values (@numero_nuevo,getdate())

commit tran

select @numero_nuevo

El 25/02/08, Rubén Duarte <[EMAIL PROTECTED]> escribió:
> Hola Maxi, no se si te llego mi pregunta anterior, pero volviendo con este
> tema, lo que hago es, con transact - sql, comenzar una transacción, tomo
el
> ultimo numero y lo incremento en 1, y ese es el numero que tomo valido
para
> el ultimo comprobante, luego finalizo la transacción.
> Como debería utilizar el código que me enviaste? Dentro un procedimiento
> almacenado?
> Podrias ampliar mas el ejemplo?
>
> Gracias nuevamente.
>
>
> -----Mensaje original-----
> De: dbms@mug.org.ar [mailto:[EMAIL PROTECTED] En nombre de Maxi Accotto
> Enviado el: Lunes, 11 de Febrero de 2008 09:28 a.m.
> Para: [EMAIL PROTECTED]
> Asunto: [dbms] Consulta por bloqueos
>
> Ruben eso sucede porque la aplicacion esta tomando mal el nunero,
> recorda que el Select no hace bloqueos, porque no me pasas como esta
> tomando la aplicacion el numero y lo cambiamos.
>
> Una forma seria
>
> DECLARE @N INT
>
> BEGIN TRAN
>  UPDATE TABLANUMERADORA SET CAMPO = @N = CAMPO + 1
>
>  SELECT @N
>
> ...
>
>
> 2008/2/11, Rubén Duarte <[EMAIL PROTECTED]>:
> >
> >
> >
> > El problema ocurre porque en una tabla tipo parametros hay un campo que
> > contiene el ultimo numero de determinado tipo de comprobante, cuando la
> > aplicación necesita tomar ese ultimo numero de comprobante e incrementar
> en
> > uno, un solo cliente deberia tomar un unico numero, y por momentos dos o
> mas
> > estaciones de trabajo toman el mismo numero. No hay posibilidad de poner
> un
> > campo autoincremental porque no se puede modificar la base, ya que hay
> otras
> > aplicaciones no desarrolladas por mi estudio trabajando sobre las mismas
> > bases.
> >
> >
> >
> > Gracias y saludos.
> >
> > Rubén Duarte.
> >
> >
> >
> >
> > De: dbms@mug.org.ar [mailto:[EMAIL PROTECTED] En nombre de Maxi accotto
> > Enviado el: jueves, 07 de febrero de 2008 09:15 p.m.
> > Para: [EMAIL PROTECTED]
> > Asunto: [dbms] Consulta por bloqueos
> >
> >
> >
> > Hola, yo por lo general no toco el modelo de isolation level, para lo
que
> > vos queres hacer no veo necesidad de eso. Porque no nos contas un poco
> mejor
> > que estas haciendo y que buscas como resultado
> >
> >
> >
> >
> > -----------------------------------------------------------
> >
> > Microsoft MVP en SQL Server
> >
> > Mentor asociado en SQLTotalConsulting
> >
> > Excelencia en servicios y consultoria  SQLServer
> >
> > www.sqltotalconsulting.com
> >
> > -----------------------------------------------------------
> >
> >
> >
> >
> > De: dbms@mug.org.ar [mailto:[EMAIL PROTECTED] En nombre de Rubén Duarte
> > Enviado el: Friday, January 18, 2008 12:02 PM
> > Para: Maxi
> > Asunto: [dbms] Consulta por bloqueos
> >
> >
> >
> > Que tal, queria saber que opinion les merece la opcion "set transaction
> > isolation level serializable" para la actualizacion de una tabla que
tiene
> > numeraciones.
> >
> > Es muy restrictivo ? Hay algun seteo menos restrictivo y que funcione de
> la
> > misma forma?
> >
> >
> >
> > Muchas gracias.
> >
> >
> >
> >
>
>
> --
> -----------------------------------------------------------
> Microsoft MVP en SQL Server
> Mentor asociado en SQLTotalConsulting
> Excelencia en servicios y consultoria  SQLServer
> www.sqltotalconsulting.com
> -----------------------------------------------------------
>
>
>


-- 
-----------------------------------------------------------
Microsoft MVP en SQL Server
Mentor asociado en SQLTotalConsulting
Excelencia en servicios y consultoria  SQLServer
www.sqltotalconsulting.com
-----------------------------------------------------------



Responder a