有点急事需要帮忙:sql+ado,在线等解答!!!万分火急。!(100分)

  • 主题发起人 主题发起人 狼牙
  • 开始时间 开始时间

狼牙

Unregistered / Unconfirmed
GUEST, unregistred user!
有点急事需要帮忙:
sql7+ado
同时10-50个人使用一个数据表,如何实现并发机制安全处理每一次事务?
也许说得不是很明白,就是说:
有张临时表,A正在编辑他,这时B也打开他并进行编辑,如何让A和B看到的数据
都是自己的,互不影响?????
 
方式一:在表中加上操作员过滤字段信息。
方式二:如果都是一味的添加操作的化建议用Select top 0 from Table再操作
方式三:每个用户都设立在本地的本地表或者内存表,都只操作内存表,在最后加一个提交
事件把编辑数据提交到数据库中去。
 
用事务处理,TRANSISOLATION设为:tiRepeatableRead级别
 
方式二:如果都是一味的添加操作的化建议用Select top 0 from Table再操作
《》《》《》没有用adoquery全部使用adotable.方式二不通过。
方式三:每个用户都设立在本地的本地表或者内存表,都只操作内存表,在最后加一个提交
事件把编辑数据提交到数据库中去
《》《》《》请问如何操作内存表????我只裝了rx的控件,有RxMemoryData1,
但没有用过,烦请详细简单的例子并说明,非常急,下班之前要弄好,所以,拜托。
分不够,可全部送上。
 
adcConnect.StartTrans
try
// 你的操作

adcConnect.commit;
except
adcConnect.rollback;
end;
 
你的意思我不是很明白,把ado 设成静态游标本,locktype=ltBatchOptimistic,
这样读过来的数据本来就是静态的互不影响,只有在提交的时候,如果多用户修改了同一条
记录才回返回错误信息,不过这个 可以用 ado 的事务处理。
 
不知道,帮您up
 
一个adotabletemp,
A用户操作adotabletemp,对其进行读写操作,
B用户同时也操作adotabletemp,对其进行读写操作,
B一打开他的程序,就可以看到A的adotabletemp表的数据,
我的目的就是要每个人所看到的,所操作的都是独立的表,
如何操作??具体。
 
你可以用ClientDataSet制作内存表。
 
我刚写的一个软件也存在这个问题,我的解决方法是(可能很笨):
每个操作员有一个 ID 号码,比如 '00001';在操作员登录系统时一般都要校验密码,
记下登录者的 ID,如果在要用到临时表的地方实时动态删除并建立表格,该表格名加上
ID 号码作为 TABLE 的 NAME, 这样每个 操作员有自己的 '临时表' 了.
 
表里加一个GUID字段,在系统里面生成一个,填进去,然后再选出来,就唯一了。
 
-- 方式一:在表中加上操作员过滤字段信息。
田伯光这个方法就很好呀,好多财务软件的套帐就是这样实现的.
AdoTable 不是有 Filter 属性吗?应也可只 filter 该操作员 的数据吧.

 
我觉得zhihuali的办法比较好,希望他能给出创建具有自己名字的临时表的方法。
var
ADOTabletemp: TADOTable;
begin
ADOTabletemp:=Tadotable.Create(self);
ADOTabletemp.Name:='adotable'+FormatDateTime('HHMMSS',Now);
。。。
我感觉好像不对头,怎么样操作这个临时建立的表???
 
接受答案了.
 
后退
顶部