Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-06-2004
Tama Tama is offline
Registrado
 
Registrado: abr 2004
Posts: 9
Poder: 0
Tama Va por buen camino
Question Duda sobre Transacciones

Hola:

tengo un problema con las transacciones....Y es que tengo una tabla donde hago un insert y me gustaria bloquear esa tabla ( ya se que no es lo mas optimo) para que nadie mas pudiese insertar registros mientras lo hago yo.
Lo estoy programando con ADO.

Si me pudieseis ayudar con un ejemplo os lo agradeceria un monton ya que llevo varios días con este problema.

Gracias.
Responder Con Cita
  #2  
Antiguo 15-06-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 23
guillotmarc Va por buen camino
Hola

Prueba a añadir TABLOCKX al final de la instrucción INSERT.

NOTA : Tienes que tener una transacción abierta, y la tabla se mantendrá bloqueada hasta que finalize la transacción.

En la ayuda de SQL Server encontrarás más información sobre este modificador.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #3  
Antiguo 16-06-2004
Tama Tama is offline
Registrado
 
Registrado: abr 2004
Posts: 9
Poder: 0
Tama Va por buen camino
Hola de nuevo:

Estoy hecha un lio.El código que yo escribo es :

begintrans
bucle for
insert

commintrans

Pero mientras ejecuto esto, desde otro sitio ejecuto otros inserts, se mezclan en vez de bloquearse.

Si me pudieses ayudar te lo agradecería mucho.
Gracias.
Responder Con Cita
  #4  
Antiguo 16-06-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 23
guillotmarc Va por buen camino
¿ Has consultado ese modificador en la ayuda de SQL Server ?

Como veras en los ejemplos que da, si lanzas la siguiente consulta :

SELECT COUNT(*) FROM Tabla WITH (TABLOCK, HOLDLOCK)

Vas a bloquear la tabla hasta que finalize la transacción. Por lo que tienes que ejecutar esta consulta después del BeginTrans y antes del primer Insert.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 05:14:27.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi