关于多线程连接数据库服务器,急!100分

hellojw 2001-07-19 09:38:24
如何建立一个不定数的多用户连接数据库模型,难道对每个客户端激活的每个线程都要定义一个query控件吗?
各位大佬,给个技术方案好吗,我接触delphi不多,能否给个例程,我送100分,谢谢
ganzhipeng@21cn.com
...全文
137 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
powerlee 2001-07-19
  • 打赏
  • 举报
回复
Session和Query都可以动态创建和释放。Session做成全局,Query作成局部,需要的时候建立,不需要的时候释放。如当有连接的时候动态创建Session当需要查询或多个查询时候,动态建立一个或多个Query把Query.session指向这个连接的Session Query执行完释放Query 当客户连接释放,把这Session释放.
BCB 2001-07-19
  • 打赏
  • 举报
回复
因为你用的是BDE,多线程除TQuery外还要TSession元件,
所以,最好静态建一个DataModule1,放上Database1,Session1,Query1,
每一个线程TDataModule1.Create就可以了
Barbarian 2001-07-19
  • 打赏
  • 举报
回复
你可以在线程里动态生成TQuery,线程结束时再释放掉嘛:)
hellojw 2001-07-19
  • 打赏
  • 举报
回复
对:powerlee(老李飞刀) 
不好意思本来给50分的但好象我给的最高分只能是20,不好意思,谢谢你!!!
powerlee 2001-07-19
  • 打赏
  • 举报
回复
假设你有以下几个事件
//用户连接
OnClientConnect(UID:TClientID):
var
M_Session:TSession;
begin
M_Session := TSession.Create(Application);
M_Session.OpenDatabase(M_Database.DatabaseName);
//保存UID与M_Session;
SaveSessionToArray(uid,M_Session);
end;
//用户数据请求
OnClientReqData(UID);
var
qryCount:TQuery;
begin
//通过UID找到保存的Tsession;假设是以下函数
qryCount:=TQuery.Create(Application);
qryCount.session:= GetSession(Uid);

//执行
with QryCount do begin
{do some thing}
...
end;
qrySession.free;
end;
//释放连接
OnDisconnect(UID)
var
session:TSession;
begin
session:=GetSession(uid);
end;
hellojw 2001-07-19
  • 打赏
  • 举报
回复
对:BCB(:))和powerlee(老李飞刀) 
本人很菜,请问能否给个具体的例子,谢谢,如果多的话发到我的邮箱中好吗,如果行分数一定送上。ganzhipeng@21cn.com
1、本课程是一个干货课程,主要讲解如何封装服务器底层,使用Tcp/ip长连接,IDE使用vs2019 c++开发以及使用c++11的一些标准,跨平台windows和linux,服务器性能高效,单服务器压力测试上万无压力,服务器框架是经历过上线产品的验证,框架简单明了,不熟悉底层封装的人,半个小时就能完全掌握服务器框架上手写业务逻辑。2、本课程是一个底层服务器框架教程,主要是教会学员在windows或linux下如何封装一个高效的,避免踩坑的商业级框架,服务器底层使用初始化即开辟内存的技术,使用内存池,服务器运行期间内存不会溢出,非常稳定,同时服务器使用自定义哈希hashContainer,在处理新的连接,新的数据,新的封包,以及解包,发包,粘包的过程,哈希容器性能非常高效,增、删、查、改永远不会随着连接人数的上升而降低性能,增、删、查、改的复杂度永远都是恒定的O(1)。3、服务器底层封装没有使用任何第三方网络库以及任何第三方插件,自由度非常的高,出了任何BUG,你都有办法去修改,查找问题也非常方便,在windows下使用iocp,linux下使用epoll.4、讲解c++纯客户端,主要用于服务器之间通信,也就是说你想搭建多层结构的服务器服务器服务器之间使用socket通信。还可以使用c++客户端做压力测试,开辟多线连接服务器,教程提供了压力测试,学员可以自己做压力测试服务器性能。5、赠送ue4和unity3d通信底层框架以及多人交互demo,登录,注册,玩家离开,同步主要是教会学员服务器与客户端如何交互。6、赠送c++连接mysql数据库框架demo,登录,注册,玩家离开数据持久化.7、服务器教程使用自定义通信协议,同时也支持protobuf,选择权在开发者自己手里,想用什么协议都可以,自由度高。8、服务器教程使用手动敲代码逐句讲解的方式开展教学课程。非喜勿喷,谢谢大家。9、服务器教程提供源码,大家可以在平台提供的地址下载或者联系我,服务器使用c++11部分标准,std::thread,条件变量,线程锁,智能指针等,需要学员具备一定c++知识,购买前请慎重考虑。

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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