我做了个测试:
机器A和机器B上同时打开一个表,并取出表中的一条记录,这条记录有三个字段,一个为关键的ID,另外两个是需要修改的。
在机器A上修改了ColA,机器B上修改了ColB,然后提交保存,结果发现有一个并没有保存上。查看了日志,发现以下语句:
UPDATE T1
SET ColB='1'
WHERE ID='297196'然后另外一条是:
UPDATE T1
SET ColA='1',
ColB=NULL
WHERE ID='297196'看了才知道,原来先修改的ColB的值被后面的给替换了,但有个问题,在修改的时候,确实是一个修改ColA,另外一个修改了ColB的呀,为什么第二条日志会出现ColB=NULL呢?
请大家帮忙看看哈,谢谢了。
机器A和机器B上同时打开一个表,并取出表中的一条记录,这条记录有三个字段,一个为关键的ID,另外两个是需要修改的。
在机器A上修改了ColA,机器B上修改了ColB,然后提交保存,结果发现有一个并没有保存上。查看了日志,发现以下语句:
UPDATE T1
SET ColB='1'
WHERE ID='297196'然后另外一条是:
UPDATE T1
SET ColA='1',
ColB=NULL
WHERE ID='297196'看了才知道,原来先修改的ColB的值被后面的给替换了,但有个问题,在修改的时候,确实是一个修改ColA,另外一个修改了ColB的呀,为什么第二条日志会出现ColB=NULL呢?
请大家帮忙看看哈,谢谢了。
解决方案 »
- missing Connection or ConnectionString,请教了
- delphi img控件中装了一副图片,再把图片img.picture赋值给img2.picture.再form.print出来时图片有锯齿并且不清晰.
- 求救!!電腦中了win.station.ad@mm的毒!
- @@怎么在进销存中实现多账套,是执行存储过程吗?在线等待.....@@
- 请各位帮个忙????????
- ------考勤系统数据库设计方案。-----
- java 专长是网络编程,c++,是专长软件开发,Delphi是专长数据库开发。有道理嘛?
- 为什么异常处理没有管用呢?
- 如何修改exe的图标?79分送上!
- 有谁有raize 2.52的serial number
- 如何用表变量。急!!!
- 在ReportBuilder如何控制DBText的值?
如果在select的同时,另外一个正在update,结果又会如何呢?
SET ColA='1' --,
--ColB=NULL --把这个更新去掉
WHERE ID='297196'
这个是数据库生成的SQL语句,没法去掉呀。
保存数据是用的数据感知控件。
我觉得即使是自己写SQL语句的话,也有这个问题。
首先两人都取出的是没有修改过的数据一个修改A列,一人修改同条记录的B列,
最后更新的SQL语句肯定是要包含两列的。那么写回的时候,肯定会有覆盖问题。