想請問是否可以解決程式互相呼叫同一支SP(會寫到同一個Table)的方法
时间:2010-08-26
来源:互联网
有没有方法可以避免掉程式Fail的方法??
因为使用VB在呼叫SP的时候,会写到Table内,但只要有其它程式先使用到同一个Table时,我的VB就会Fail掉,因为都要Insert到同一个Table内,被先呼叫到的程式先Lock住了。
所以想问sql DB有没有方法或机制,可以让后面的Task先Wait住(可能在Queue),待使用到同一个Table的Task执行完后,可以在叫起在Queue中的Task来执行??
Best Regards
因为使用VB在呼叫SP的时候,会写到Table内,但只要有其它程式先使用到同一个Table时,我的VB就会Fail掉,因为都要Insert到同一个Table内,被先呼叫到的程式先Lock住了。
所以想问sql DB有没有方法或机制,可以让后面的Task先Wait住(可能在Queue),待使用到同一个Table的Task执行完后,可以在叫起在Queue中的Task来执行??
Best Regards
作者: JenDick 发布时间: 2010-08-26
把资料丢到 spooler , 再另外用"一支程式"从 spooler 更新到真正的 record , 由单一程式处理单一功能就不会被 lock .
作者: slime 发布时间: 2010-08-26
感谢slime
很抱歉,这么晚才回应
想在请问一下,你所说的spooler是指哪部份??
因为没办法确定另外支程式的执行时间,所以会随机的遇到两支同时执行,所以如果先存入Spooler,另一支在更新,那不会遇到一样的问题吗??
Thanks & Best Regards
很抱歉,这么晚才回应
想在请问一下,你所说的spooler是指哪部份??
因为没办法确定另外支程式的执行时间,所以会随机的遇到两支同时执行,所以如果先存入Spooler,另一支在更新,那不会遇到一样的问题吗??
Thanks & Best Regards
作者: JenDick 发布时间: 2010-08-29
引用自: JenDick 於 2010-08-29 23:58
想在请问一下,你所说的spooler是指哪部份??
因为没办法确定另外支程式的执行时间,所以会随机的遇到两支同时执行,所以如果先存入Spooler,另一支在更新,那不会遇到一样的问题吗??
因为没办法确定另外支程式的执行时间,所以会随机的遇到两支同时执行,所以如果先存入Spooler,另一支在更新,那不会遇到一样的问题吗??
写三支程式:
1. Common : 负责更新资料库
2. 程式 A
3. 程式 B
程式 A 只负责把前端的值记下来, 呼叫 Common ; 程式 B 也是如此.
而 Common 程式负责依程式先后顺序, 将资料写入 DB ; 并判断是否有其他 Common .
如此一来真正有写入的只有 Common , 也就大大降低两支程式同时写入的问题.
而且 Common 也可以有不同的优先顺序观念, 弹性比较大.
另外的方式是在写入前先进行一些检查, 如果有其他程式在进行, 就暂停,
但是这样还是很容易在 AP 端 Lock , 所以比较不建议.
作者: slime 发布时间: 2010-09-02
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28