Foxtable(狐表)用户栏目专家坐堂 → [求助 ]死锁


  共有2082人关注过本帖树形打印复制链接

主题:[求助 ]死锁

帅哥哟,离线,有人找我吗?
wumingrong1
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
[求助 ]死锁  发帖心情 Post By:2017/5/31 9:39:00 [只看该作者]

我的项目有几百个人会对数据库进行操作;现在经常会出现死锁情况;经过观察、在有人在对表数据进行修改的时候,同时有人在对表进行数据加载;就会出现死锁。(我的数据表有可能同一时间有几百人在修改数据、如果这时候有人进行数据加载、就很容易出现死锁情况)。请问我该怎么处理?

 回到顶部
帅哥哟,离线,有人找我吗?
chen3728060
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:388 积分:5098 威望:0 精华:0 注册:2013/11/2 0:01:00
  发帖心情 Post By:2017/5/31 9:52:00 [只看该作者]

死锁有什么提示吗?你用的是什么锁?openQQ锁机制吗?还是sql里的事务锁?具体说说

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/31 10:46:00 [只看该作者]

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

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
wumingrong1
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
  发帖心情 Post By: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
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/31 16:17:00 [只看该作者]

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

 

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

 

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
wumingrong1
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
  发帖心情 Post By:2017/5/31 18:21:00 [只看该作者]

死锁的时候弹出以下错误

 


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


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/31 18:33:00 [只看该作者]

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

 

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

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
wumingrong1
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1029 积分:6497 威望:0 精华:0 注册:2014/1/3 12:49:00
  发帖心情 Post By:2017/6/1 8:56:00 [只看该作者]

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/1 9:02:00 [只看该作者]

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

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
nblwar
  10楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:977 积分:6806 威望:0 精华:1 注册:2012/8/7 22:03:00
  发帖心情 Post By:2017/6/1 10:31:00 [只看该作者]

数据库事务在执行的时候,数据库是不允许其他操作的,所以被锁了,这跟狐表没关系,要想操作必须终止数据库事务

 回到顶部