以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助 ]死锁  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=101423)

--  作者:wumingrong1
--  发布时间:2017/5/31 9:39:00
--  [求助 ]死锁
我的项目有几百个人会对数据库进行操作;现在经常会出现死锁情况;经过观察、在有人在对表数据进行修改的时候,同时有人在对表进行数据加载;就会出现死锁。(我的数据表有可能同一时间有几百人在修改数据、如果这时候有人进行数据加载、就很容易出现死锁情况)。请问我该怎么处理?
--  作者:chen3728060
--  发布时间:2017/5/31 9:52:00
--  
死锁有什么提示吗?你用的是什么锁?openQQ锁机制吗?还是sql里的事务锁?具体说说
--  作者:有点色
--  发布时间:2017/5/31 10:46:00
--  

 你数据库设置的锁问题吧?

 

 foxtable本身,是不会出现锁的问题。


--  作者:wumingrong1
--  发布时间:2017/5/31 16:15:00
--  

我在 DrawCell 中写有以下命令

            
            If  e.Row("盯控20小时") < Date.Now  And e.Row("盯控12小时") < Date.Now And e.Row("盯控8小时") < Date.Now And e.Row("盯控4小时") < Date.Now   Then
                e.Row("工单时长") = "超20小时工单"
                If  e.Row("盯控20小时提醒") = True Then
                    e.Style = "盯控已提醒工单"
                Else
                    e.Style = "盯控20小时工单"

                    
                End If

End If

 

当触发到条件时、该行就会变成【被修改】行;可不可以设置成不变成【被修改】状态

 

 

 


图片点击可在新窗口打开查看此主题相关图片如下:360截图20170531152746102.jpg
图片点击可在新窗口打开查看

--  作者:有点色
--  发布时间:2017/5/31 16:17:00
--  

你这个代码,不能写在 drawcell 事件

 

e.Row("工单时长") = "超20小时工单"

 

如果你需要修改其值,应该在datacolchanged事件控制。

 


--  作者:wumingrong1
--  发布时间:2017/5/31 18:21:00
--  

死锁的时候弹出以下错误

 


图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20170531182036.png
图片点击可在新窗口打开查看


--  作者:有点色
--  发布时间:2017/5/31 18:33:00
--  

1、你代码里面用到多线程了吗?

 

2、你是否有多个程序(不单单foxtable)对数据库进行访问?

 

3、你的数据库里面,是不是有设置锁操作?


--  作者:wumingrong1
--  发布时间:2017/6/1 8:56:00
--  

数据库确实有(不单单foxtable)其他程序对数据库进行访问;这个问题也没有办法解决或者优化?

 


--  作者:有点色
--  发布时间:2017/6/1 9:02:00
--  

 数据库是你创建的吗?数据库里面有没一些函数或者存储过程,用到了【锁】?

 

 如果锁住了,你再去读取或保存,就肯定出错。


--  作者:nblwar
--  发布时间:2017/6/1 10:31:00
--  
数据库事务在执行的时候,数据库是不允许其他操作的,所以被锁了,这跟狐表没关系,要想操作必须终止数据库事务