Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Transação x RLOCK()
Message
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Title:
Transação x RLOCK()
Miscellaneous
Thread ID:
00612586
Message ID:
00612586
Views:
49
Caro Fábio Vazquez,

Vamos supor o bloqueio de um registro de uma tabela de controle de códigos automáticos, gostaria de seu comentário a respeito destas duas técnicas que apresentarei a seguir (o código está simplificado, apenas para dar uma idéia das formas utilizadas):

1) Transação

BEGIN TRANSACTION

UPDATE tabela SET campo = campo + 1 WHERE condicao

IF ERROR() <> 0

ROLLBACK

RETURN

ENDIF

END TRANSACTION


2) Bloqueio de registro

IF RLOCK()

REPLACE campo WITH campo + 1

UNLOCK

ENDIF


O que eu gostaria de saber é se, numa condição intensa de cadastramento de registros num banco de dados com geração automática de código chave para um registro, qual das técnicas acima melhor se aplicaria, sem perigo de retorno de códigos duplicados ou com o menor tempo de bloqueio possível (melhor se formar uma fila de "espera", de acordo com as requisições).

Lembro que este procedimento de geração automática de códigos seria executado no servidor, a partir de um componente COM, que receberia as requisições para geração do código de forma simultânea de várias estações na rede.

Onde o comando FLUSH poderia ajudar nestes procedimentos (se é que poderia ajudar)?

Tive problemas na geração de códigos automáticos quando utilizei o componente a partir da intranet, com aplicações VFP nas estações e também com o acesso pela WEB, via ASP, de forma simultânea.

O coponente trabalhava sob o MTS no servidor Windows NT Server 4.0 SP6a.

A requisição ASP vinha diretamente do servidor WEB.

Houveram casos de geração de códigos repetidos.


Daqui a alguns meses precisarei colocar novamente a aplicação no ar (intranet e Internet) e não gostaria de passar pelos mesmos problemas.

Grato no que puder comentar.

Grande abraço!


Carlos Moisés
Carlos Moisés
Next
Reply
Map
View

Click here to load this message in the networking platform