社区
茶馆
帖子详情
如何在线程中用TSession、TDatabase、TQuery进行后端数据库的查询?
tramp_man
2002-02-06 11:10:32
我想在线程中进行一个费时的查询,并想用TDatabase进行连接控制,可如何进行TSessioin、TDatabase、TQuery三个组件的设置?
...全文
66
11
打赏
收藏
如何在线程中用TSession、TDatabase、TQuery进行后端数据库的查询?
我想在线程中进行一个费时的查询,并想用TDatabase进行连接控制,可如何进行TSessioin、TDatabase、TQuery三个组件的设置?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
invalid
2002-02-07
打赏
举报
回复
上面程序的关键是把Tdatabase和tsession放在了一个Datamodal中。
然后在线程中new出数据模块,不用一个New Tdatabase和
Tsession了。
invalid
2002-02-07
打赏
举报
回复
TDBM * DM=new TDBM(NULL);
static long UniqueNumber;
InterlockedIncrement(&UniqueNumber);
String buf = DM->ATCSession->Name + UniqueNumber;
DM->ATCSession->SessionName = buf;
DM->DatabaseAtc->SessionName = DM->ATCSession->SessionName;
buf = DM->DatabaseAtc->Name + UniqueNumber;
DM->DatabaseAtc->DatabaseName = buf;
DM->DatabaseAtc_plus->SessionName = DM->ATCSession->SessionName;
buf = DM->DatabaseAtc_plus->Name + UniqueNumber;
DM->DatabaseAtc_plus->DatabaseName = buf;
DM->DatabaseAtc1->SessionName = DM->ATCSession->SessionName;
buf = DM->DatabaseAtc1->Name + UniqueNumber;
DM->DatabaseAtc1->DatabaseName = buf;
try{
DM->DatabaseAtc->Connected=true;
DM->DatabaseAtc_plus->Connected=true;
DM->DatabaseAtc1->Connected=true;
}
catch(...){
Message="连接业务数据失败";
Synchronize((TThreadMethod)&AddMessage);
return -1;
}
TR@SOE
2002-02-07
打赏
举报
回复
在线程中使用数据库要注意一些问题:
一、必须有独立的SESSION;
二、DATABASE/DATASOURCE等都需要在线程中动态设置。
详细的讨论可以参见KENT REISLEY的BCB 4技术内幕。
tramp_man
2002-02-07
打赏
举报
回复
难道就没有全部都在线程中完成的办法吗?
tramp_man
2002-02-07
打赏
举报
回复
试下看
yahee
2002-02-07
打赏
举报
回复
你可以象和往常一样设置好DataModule内TSession, TDatabase, TQuery的参数,然后在后台线程中调用。
我一般是先在主线程中打开TDatabase连接的。只要把TDatabase的Login Prompt选项去掉,在Parameter中加入user和password就不会跳出login窗口。
tramp_man
2002-02-06
打赏
举报
回复
我刚是说这样还会跳出login窗口。
tramp_man
2002-02-06
打赏
举报
回复
这样不行,我都试过,如果用TDatabase,如何做?to songhtao
tramp_man
2002-02-06
打赏
举报
回复
在线程中要的,我就是不知对TSessioin、TDatabase、TQuery三者进行相互设置!
我不懂电脑
2002-02-06
打赏
举报
回复
多线程需要TSessioin控制数据库会话TSessioin和TDatabase的作用类似,只要勇其中的一个就可以了,主要是设置TSessioin的Name其他属性默认就可以了,然后把TQuery的SessionName置为TSessioin的Name就可以了。
kill_net
2002-02-06
打赏
举报
回复
好象不需要对TSessioin进行设置
因为他可以自动生成
多层
数据库
开发二:单层和两层的应用程序
多层
数据库
开发二:单层和两层的应用程序 第二章 单层和两层的应用程序 单层和两层的
数据库
应用程序相对来说比较简单,应用程序和
数据库
往往在同一个文件系统中,甚至就在同一个磁盘上。这两种类型的
数据库
应用程序...
多层
数据库
开发二:单层和两层的应用程序 选择自 CYRTSOFT 的 Blog
单层和两层的
数据库
应用程序相对来说比较简单,应用程序和
数据库
往往在同一个文件系统中,甚至就在同一个磁盘上。这两种类型的
数据库
应用程序都不太适合于在多用户的环境下同时访问同一个
数据库
。 对于单层的应用...
二:单层和两层的应用程序
第二章 单层和两层的应用程序 单层和两层的
数据库
应用程序相对来说比较简单,应用程序和
数据库
往往在同一个文件系统中,甚至就在同一个磁盘上。这两种类型的
数据库
应用程序都不太适合于在多用户的环境下同时访问同...
18.Delphi客户服务器应用开发
在
数据库
环境下,通过若干称作中间件(middleware)的程序设计接口,客户机可以与服务器通信。这些接口提供应用程序和
数据库
之间的连通性。 图18.1 客户/服务器体系结构 虽然图18.1只有一个服务器,但客户/服务器...
茶馆
552
社区成员
20,062
社区内容
发帖
与我相关
我的任务
茶馆
C++ Builder 茶馆
复制链接
扫一扫
分享
社区描述
C++ Builder 茶馆
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章