FoxPro/Visual FoxPro - Concurrencia SQL Server

 
Vista:

Concurrencia SQL Server

Publicado por Diego (23 intervenciones) el 11/07/2006 13:46:21
Hola a todos, que tal
como se puede bloquear un registro de una tabla en SQL Server ?. Es para una aplicacion de VFP 9.0 con SQL server 2000. Necesito que si un usuario abre una pantalla con un registro para modificarlo, no pueda otro usuario abrir el mismo registro para modificar (pero si para leer), ya que se sobreecribirian los datos quizas.
O si me pueden explicar una forma de impedir que un usuario pise los datos del registro que esta modificando otro usuario al mismo tiempo, sin tener que bloquear de forma pesimista el registro, me vendria mejor.

Muchas Gracias

Diego
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Concurrencia SQL Server

Publicado por Ernesto Hernandez (4623 intervenciones) el 11/07/2006 17:32:19
Diego ese tema ya se habia tratado anteriormente pero ahi te va de nuez.

Suerte


Sabemos que todos los servidores de SQL (inclusive MS SQL 2000) no tiene LOCK, FLOCK, y RLOCK. ¿Usted puede preguntar por qué? ¡Por que todos los bloqueo es realizado automáticamente! ¿Cómo y cuándo? Sucede durante el proceso de la transacción. Durante una transacción SQL necesita cerrar completa y automáticamente los registros y tablas, las alarmas (y previene) posibles conflictos de comparticion de registros.
Es bueno por una parte. Nosotros no necesitamos preocuparnos por estas cosas. Todos trabajos acerca de cerrar y bloquear son responsabilidades del server. Por otra parte, parece que no tenemos flexibilidad de FoxPro. Malas noticias? No. No piense acerca de la transacción como la operación pesada.

BEGIN TRANSACTION – Instruimos al servidor para prepararse…
* Hacemos movimientos con los datos. En este momento los registros y las tablas se bloquean por el mismo server
* Automaticamente! Si el servidor detecta conflictos al compartir, entonces la transaccion falla
* Los datos se regresan autmaticamente!
END TRANSACTION Si llegamos aqui todo bien !

La mejor forma de usar un servidor de transacciones SQL desde VFP es pasando por SQL. Tambien puedes utilzar Stored Procedures

Tambien puedes leer acerca de :
SQLSETprop() -
SQLGETPROP() -
CursorSETPROP() - Creo que con este puedes logralo
CURSORGETPROP() -
tableUpdate() -
TableRevert() -
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar