三层数据库程序问题(使用SocketConnect方式连接)

ghui 2002-09-14 11:15:58
现有一个三层数据库程序:客户端使用 SocketConnect,服务端连接Access数据库(数据库文件与服务器程序不是在同一台机器上,数据库通过ODBC转BDE连接,数据库文件在网络路径下是允许任何人匿名连接,完全控制)。

当 scktsrvr.exe 没有被注册为一个服务时,单独运行服务器程序,或运行客户端程序,由系统调起服务端程序,没有出现任何错误。

当 scktsrvr.exe 被注册为一个服务后,且服务启动了,单独运行 服务器程序,运行正常,没有任何错误。但运行客户端程序,连接服务器程序时,服务器程序会由系统调起,服务器程序不能打开数据库。提示如下:

Key violation.
[Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine cannot open the file '(unknown)'. It is already General SQL error. opened exclusively by another user, or you need permission to view its data.

谁能给我指一条路或一个方向。(不要告述我使用ADO连接数据方式,我现在的程序已经接近完成,里面由大约130个表)
...全文
55 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ghui 2002-11-03
  • 打赏
  • 举报
回复
当数据库与服务器在相同的机器上时,没有这种情况出现,我到现在都不明白为什么。
土著巫师 2002-11-01
  • 打赏
  • 举报
回复
1、针对你的问题,我想出错是因为你的中间层服务程序出问题了!你是不是在起动时进行了许多初始化工作?比如说数据库边接等。你可以先手工把中间层起动,不要让客户端来激活,减小自身起动的时间来试试。
2、scktsrvr.exe 是不是注册为一个服务与你的问题无关。事情很明显示,是你的中间层通过ODBC取数据时出问题了。而且是因为你打开了一不知名表。
3、出问题也有可能是数据库访问驱动要更新或太忙。建议去MS站点更新最新的JET驱动。

祝你好运。
itperson 2002-10-28
  • 打赏
  • 举报
回复
共同进步!

谁帮我看看我的socketconnection连接?sql server数据库的,也是连接不上

下载地址:http://www.itperson.com/software/sashs.exe

多谢帮助!:)
yuyulily 2002-10-23
  • 打赏
  • 举报
回复
同意halfdream(哈欠),如果你的远程数据模块是用默认方式建立的
lingbin 2002-10-23
  • 打赏
  • 举报
回复
其实跟本就不用运行scktsrvr.exe来注册,你直接运行服务器系统自动会帮你注册的。如果正常的话,你直接运行你的客户端,你的服务器也会自动运行,录然也包括注册。
ljlln 2002-10-23
  • 打赏
  • 举报
回复
gz
halfdream 2002-09-14
  • 打赏
  • 举报
回复
试试在BDE连接中使用Session组件。。

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧