多客户端同时操作一个sql数据表 ( 积分: 100 )

  • 主题发起人 主题发起人 luckyhou
  • 开始时间 开始时间
L

luckyhou

Unregistered / Unconfirmed
GUEST, unregistred user!
请教各位高手,要实现多客户端同时操作sql数据库中的一个表,有什么好的建议!!
 
SQL本身就有这样的功能,程序员跟本不用管SQL具体是如何实现的!<br>可能我不理解你的意思!
 
楼主意思是否在同步操作相同数据表时,避免出现数据冲突的问题啊
 
to&nbsp;lizhenhe:是的
 
这个问题我们以前也遇过,不过,只使用一些笨办法避免<br>在提交数据时使用insert或update方式<br>在删除数据时,使用try...except方式监控,如果删除错误则给出指定提示;
 
我试试,3Q
 
帮你顶一个,顺便发个交流群:<br>无论你是超极菜鸟,亦或是绝顶高手,在这里偶们静下心来平等地交流学习:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>delphi交流群:4654765(delphi天堂)欢迎您的加入!让我们共同进步!!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>加入者必须改名片为:{地点}+姓名&nbsp;&nbsp;注:不改者勿扰!
 
方法很多那要看你是怎么来操作表了。就是说是一步完成还是一个用户多次操作。<br>1。可以锁定表<br>2。可以在程序中用事物<br>3。可以用信号灯模式
 
更新时,用事务处事的,
 
来得晚,总结一下。<br>我一般在操作数据库的时候都会加上TRY,并且还启动事务,这样才可以安全的操作数据库。<br>如:<br>//上面先对需要操作的数据做检查<br>//这里开始操作<br>&nbsp;&nbsp;try<br>&nbsp;&nbsp;&nbsp;&nbsp;Screen.Cursor&nbsp;:=&nbsp;-11;<br>&nbsp;&nbsp;&nbsp;&nbsp;DM1.conMain.BeginTrans;&nbsp;&nbsp;&nbsp;//这个东东是ADOConnection<br>&nbsp;&nbsp;&nbsp;&nbsp;sSQL&nbsp;:=&nbsp;'Insert&nbsp;into&nbsp;...';//省略SQL语句<br>&nbsp;&nbsp;&nbsp;&nbsp;ExecSQL(sSQL);&nbsp;&nbsp;&nbsp;//这是我自己写的执行SQL语句的小过程,大家按平时的去作就可以了,我只是想省几行代码,反正都要重复用的<br>&nbsp;&nbsp;&nbsp;&nbsp;DM1.conMain.CommitTrans;;<br>&nbsp;&nbsp;&nbsp;&nbsp;Screen.Cursor&nbsp;:=&nbsp;0;<br>&nbsp;&nbsp;&nbsp;&nbsp;MsgBox('添加记录完成!');<br>&nbsp;&nbsp;except<br>&nbsp;&nbsp;&nbsp;&nbsp;on&nbsp;e:Exception&nbsp;do<br>&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Screen.Cursor&nbsp;:=&nbsp;0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DM1.conMain.RollbackTrans;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MsgErrBox('添加记录失败!请稍后再试。'+#13+e.Message+#13+sSQL);&nbsp;//这里提示出错的原因和出错的SQL语句<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//MsgErrBox&nbsp;在网上公开的公共代码库里都有,大家可以自己DOWN下载看,就是一个固定的参数的MessageBox而已<br>&nbsp;&nbsp;&nbsp;&nbsp;end;<br>&nbsp;&nbsp;end;
 
后退
顶部