刚转VB没多久,不知道VB里面怎么设置记录锁定。
数据库用的是SqlServer2000
我现在是想在VB查询出很多记录后点一条记录查看、修改、保存,由于多人会有同时操作一条数据的可能性,现在试图在一个人在点修改按钮后就把记录锁定,其他人只能查看,不能再点修改,也不能保存这条记录,直到第一个人取消或者保存记录为止,请问这个应该怎么做?
其实以前在delphi里面也不知道怎么设置的了,拿原来的代码来看也看不出什么,好像什么都没设置就可以用的,VB里面不行-_-!~~望不吝赐教,thanks
数据库用的是SqlServer2000
我现在是想在VB查询出很多记录后点一条记录查看、修改、保存,由于多人会有同时操作一条数据的可能性,现在试图在一个人在点修改按钮后就把记录锁定,其他人只能查看,不能再点修改,也不能保存这条记录,直到第一个人取消或者保存记录为止,请问这个应该怎么做?
其实以前在delphi里面也不知道怎么设置的了,拿原来的代码来看也看不出什么,好像什么都没设置就可以用的,VB里面不行-_-!~~望不吝赐教,thanks
private sub command1_click()
on error goto err:
conn.begintrans '开启事务
conn.execute "insert into tablename(...) values(...)"
conn.execute "update tablename set ... where ..."
conn.execute "delete from tablename ... where ..."
conn.committrans '提交事务
exit sub
err:
conn.rollbacktrans '回滚事务
exit sub
end sub
CREATE PROC dbo.procDinner_note
AS
BEGIN TRAN
SET NOCOUNT ON
SET ANSI_WARNINGS ON
SET XACT_ABORT ON --光晟員工每日3餐,時間為一個月(本月1日到最后一天)
DECLARE @in_start_time datetime
SET @in_start_time=CONVERT(varchar(10),GETDATE(),120)
UPDATE ht_server.dbo.person_file
SET dine='Y',dinner_num=9,in_start_time=@in_start_time,in_end_time=DATEADD(second,-1,DATEADD(month,1,@in_start_time))
FROM ht_server.dbo.person_file A,
(SELECT person_no
FROM person
WHERE enable='1' AND ISNULL(bed_no,'')<>'' AND LEFT(LTRIM(position_no),1)='A' AND ISNULL(rice_type,'')<>'A' AND ISNULL(tax_level,'')<>'B'
)B
WHERE A.person_no=B.person_no AND A.enable='1' AND A.detp_no='A0000'IF @@ERROR<>0 GOTO error_sign
COMMIT TRAN
SELECT 1
error_sign:
IF @@ERROR<>0
BEGIN
ROLLBACK TRAN
SELECT 0
END
set mydb=opendatabase(App.Path & "\yyjxc.mdb",True)
msgbox "数据库已经被独占方式锁定!"
LockType 可选。确定提供者打开 Recordset 时应该使用的锁定(并发)类型的 LockTypeEnum 值,可为下列常量之一。常量 说明
AdLockReadOnly (默认值)只读 — 不能改变数据。
AdLockPessimistic 保守式锁定(逐个) — 提供者完成确保成功编辑记录所需的工作,通常通过在编辑时立即锁定数据源的记录。
AdLockOptimistic 开放式锁定(逐个) — 提供者使用开放式锁定,只在调用Update 方法时才锁定记录。
AdLockBatchOptimistic 开放式批更新—用于批更新模式(与立即更新模式相对)。 说明打开 Recordset 前设置 LockType 属性可指定打开时提供者应该使用的锁定类型。读取该属性可返回在打开的 Recordset 对象上正在使用的锁定类型。Recordset 关闭时 LockType 属性为读/写,打开时该属性为只读。提供者可能不支持所有的锁定类型。如果某提供者不支持所需的 LockType 设置,则将替换为其他类型的锁定。要确定 Recordset 对象可用的实际锁定功能,请通过 adUpdate 和 adUpdateBatch 使用 Supports 方法。如果 CursorLocation 属性被设置为 adUseClient,将不支持 adLockPessimistic 设置。设置不支持的值不会产生错误,因为此时将使用支持的最接近的 LockType 的值。远程数据服务用法 当在客户端 (ADOR) 的 Recordset 对象上使用时,LockType 属性只能设置为 adLockOptimisticBatch。