出售火车票(数据库写访问的控制问题). 我不是很清楚你的想法,不过对于加锁问题,我们一般都加上一个布尔型的IsLocked字段,只有IsLocked为False情况才能编辑,编辑时改为True,编辑完后再改为False。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在数据库中加入一个标志位,这个标志位就是读取标志位,在读取这条记录时,将这个标志位置1,这样别的终端读的时候加入where条件 标志位=0 ,这样就可以了。不会同时读取同一条记录的。另外Oracle中好像有一种锁专门干这个的,但是我不记得了,你可以找资料看看。 或许可以,但 你的意思是想实现A修改完后B又在A修改后的基础上修改吗? 一般这种情况的处理都要放在存储过程中,并返回一个处理结果(最简单的是一个BOOL值),同时在存储过程中还要使用到事务处理,这样,只能有一个人被处理成功,第二个人是不会被受理的。 TO:donotbesilent(惊叹不已) 引用:你的意思是想实现A修改完后B又在A修改后的基础上修改吗?其实这就看系统是否需要了,如果是售票系统我想还应当有一个售出标志位的表结构增加两个个标志位(两个字段):一个是读取字段,一个是售出字段。读取的时候的where语句:where 读取字段=未被读取 and 售出字段=未售出就可以了!!我个人对数据库的认识就是数据和标志位。增加一个功能就增加一个标志位。 zhang_xw(未来帅哥) chsl918(二雷):加上一个判断字段是可以,但有一些问题,效率低而且容易出错,假如一个终端异常退出,标志位没有恢复,那也会出错.songyangk(小草):两个机子都有修改过程,就是都得等用户输入,所以不能用存储过程. TO:wfzn()那不是正好吗?正好各有3张啊!!我需要补充一点就是加入标志位的时间,在读取的时候需要一条一条读取,每读取一条需要为这一条加上标志位,如果没有加上标志位就说明没有读取。实现是先作一个读取循环,再进行按条置标志位楼上说的安全问题确实值得注意,解决方式是建立一个手工清除标志位的模块,这个模块将所有已经置读取标志位而没有卖出票的记录都读取出来由人工去挑选清除标志位,可能你会觉得这样增加应用工作量,但是我想这个毕竟是及其少数的情况所以应用工作量不会增加多少的,而且这个工作可以在没有人售票的情况下完成,(比如下班之后干脆所有都清除就可以了!) 关于窗体置顶问题 急求:SETUP.EXE文件,能改变安装后在开始菜单中的名称么? vb对cad2000二次开发,高分相送,不够在加 VB+Access 求贵人帮忙啊!! 帮我看看下面这段代码,用递归法添加节点到树,不知错在哪里? MDI窗口与子窗口的问题,help~~~~~~~~~~~~~ 这样的SQL语句怎么写? 在文本框中如何显示彩色字? VB中如何使Form大于屏幕。如何使用滚动条控制 紧急求助!!!有高手能帮我完成我的毕业设计吗? 新手问题 公开一个用ASP.VBScript写的图形聊天室"水泊梁山"的源代码
你的意思是想实现A修改完后B又在A修改后的基础上修改吗?
其实这就看系统是否需要了,如果是售票系统我想还应当有一个售出标志位的
表结构增加两个个标志位(两个字段):一个是读取字段,一个是售出字段。
读取的时候的where语句:where 读取字段=未被读取 and 售出字段=未售出
就可以了!!
我个人对数据库的认识就是数据和标志位。增加一个功能就增加一个标志位。
songyangk(小草):两个机子都有修改过程,就是都得等用户输入,所以不能用存储过程.
那不是正好吗?正好各有3张啊!!
我需要补充一点就是加入标志位的时间,在读取的时候需要一条一条读取,每读取一条需要为这一条加上标志位,如果没有加上标志位就说明没有读取。
实现是先作一个读取循环,再进行按条置标志位楼上说的安全问题确实值得注意,解决方式是建立一个手工清除标志位的模块,这个模块将所有已经置读取标志位而没有卖出票的记录都读取出来由人工去挑选清除标志位,可能你会觉得这样增加应用工作量,但是我想这个毕竟是及其少数的情况所以应用工作量不会增加多少的,而且这个工作可以在没有人售票的情况下完成,(比如下班之后干脆所有都清除就可以了!)