关于Database和Session的问题!火急!

wangledong 2001-11-28 06:15:04
我现在作一个数据库相关的程序,我用多线程查找数据,但是我不会使用用Database和Session,应该是一个线程有一个Session可是Database呢?也是一个线程动态创建吗?如果创建那databasename怎么取,我随便取了一个,也能连接成功,可是用动态创建的Query来查询的时候,出异常,说数据库不存在!

请各位帮助!谢谢!
...全文
179 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangledong 2001-11-30
  • 打赏
  • 举报
回复
问题解决!结账!
wangledong 2001-11-29
  • 打赏
  • 举报
回复
非常感谢chechy(chechy) !!!
chechy 2001-11-29
  • 打赏
  • 举报
回复
我的方案二和你看的资料的方法是一回事。
这样的一个坏处是消耗资源太大,同时过多的连接对连接的License也有要求。
我的方案一,资源消耗比较小,但是线程多了,便会造成阻塞。因为和数据库的通道只有一个TDatabase,大家都共享这一个。
好了,足够多了。
wangledong 2001-11-29
  • 打赏
  • 举报
回复
在资料上看到说,如果用多线程进行同步查询则每个线程都需要一个Session,
chechy(chechy) 的说法是不用多个Session,那位大侠给解释一下?
to chechy(chechy) 您的做法适合与多线程的同步查询吗?TDatabase的HandleShared设为True是起什么作用?
wangledong 2001-11-28
  • 打赏
  • 举报
回复
UP!!!
chechy 2001-11-28
  • 打赏
  • 举报
回复
1、不需要。
2、不是,需要动态创建。但是,由于设置了AutoSessionName,就不用担心出问题了。
wangledong 2001-11-28
  • 打赏
  • 举报
回复
to chechy(chechy)
方案一是每个线程都动态创建一个Session吗?如果是那Session该如何设置?
方案二是多个线程都使用一个Session吗?
chechy 2001-11-28
  • 打赏
  • 举报
回复
两种方案:
1、TDatabase的HandleShared设为True。
2、用一个TSession,一个TDatabase,Session的AutoSessionName设为True,TDatabase的SessionName设为当前TSession的Name。其它设置不变。
两个方案可以任选一种。
chechy 2001-11-28
  • 打赏
  • 举报
回复
两种方案:
1、TDatabase的HandleShared设为True。
2、用一个TSession,一个TDatabase,Session的AutoSessionName设为True,TDatabase的SessionName设为当前TSession的Name。其它设置不变。
两个方案可以任选一种。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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