请教怎么保证只有一个进程读写数据库
请问如何保证只有一个进程读写数据库?
请问大家一个这样的问题:现在有一个程序,使用vc写的。这个程序有可能在多台计算机上运行,并且访问同一个数据库中同一张表。请问如何实现在同一时间只能有一个进程读写服务器?谢谢!
------解决方案--------------------
我不知道简单的方法
你可以只用一个句柄访问数据库
并给这个句柄加锁
------解决方案--------------------
同步啊,创建命名的内核对象,EVENT,Mutex, semaphore等
------解决方案--------------------
多台计算机上运行,并且访问同一个数据库中同一张表
这是远程的db服务器。可以设置限制用户连接数. 比如只限制Auser这个db用户只能建立一个连接。
这要看数据库服务器有没有这个功能。
------解决方案--------------------
建议对数据库加锁。可以考虑记录级或表级
------解决方案--------------------
事务,搜下就出来了。
------解决方案--------------------
lock table
------解决方案--------------------
用事务处理不够吗?
------解决方案--------------------
可以锁记录,而不是锁表。还有一个办法就是你自己写一个Server,不要让Client直接连接数据库。通过Server进行分发和平衡。
请问大家一个这样的问题:现在有一个程序,使用vc写的。这个程序有可能在多台计算机上运行,并且访问同一个数据库中同一张表。请问如何实现在同一时间只能有一个进程读写服务器?谢谢!
------解决方案--------------------
我不知道简单的方法
你可以只用一个句柄访问数据库
并给这个句柄加锁
------解决方案--------------------
同步啊,创建命名的内核对象,EVENT,Mutex, semaphore等
------解决方案--------------------
多台计算机上运行,并且访问同一个数据库中同一张表
这是远程的db服务器。可以设置限制用户连接数. 比如只限制Auser这个db用户只能建立一个连接。
这要看数据库服务器有没有这个功能。
------解决方案--------------------
建议对数据库加锁。可以考虑记录级或表级
------解决方案--------------------
事务,搜下就出来了。
------解决方案--------------------
lock table
------解决方案--------------------
用事务处理不够吗?
------解决方案--------------------
可以锁记录,而不是锁表。还有一个办法就是你自己写一个Server,不要让Client直接连接数据库。通过Server进行分发和平衡。