Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
Author |
Topic |
Da_Retina
Posting Yak Master
109 Posts |
Posted - 2002-03-20 : 17:26:12
|
Salute to All..I have this issue..I am desgining an Invoices Settlement form in VB..I retirve invoices in a command..add them to an array then when the user decides to commit I will open a command to settle the invoices..now..HOW CAN I MAKE sure the nobody settled an invoice between the first user's retreival and its settlement?i mean how can I LOCK THE RECORD and then RELEASE THE LOCK?..like check it out..then check it in??..------------------If I am to do it,I will, and NOW .. |
|
nr
SQLTeam MVY
12543 Posts |
Posted - 2002-03-20 : 21:32:37
|
There are several ways to do this depending on what effect you want.Usually for updating after the user has entered data you will just reject the update if the record has changed.Just put a timestamp on the table - retrieve the timestamp with record send the timestamp back to the update SP and if it does not match the record then reject the update and tell the user to re-enter. This gets round the problem of the user retrieving the data for update then going away and does not hold any info in the database about the user.You can lock the records for update without affecting reads... by hoding the record primary key and the user spid and logon time in a resource locking table. Only allow users to lock records that are not in the table (by adding the entry). You can tell if the user has crashed by checking the spid/logon time.==========================================Cursors are useful if you don't know sql.Beer is not cold and it isn't fizzy. |
|
|
|
|
|