以文本方式查看主题
- 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
--
数据库事务在执行的时候,数据库是不允许其他操作的,所以被锁了,这跟狐表没关系,要想操作必须终止数据库事务
|