数据库程序几个Form怎么共享Form1上面的ADOConnection1?

ooolinux 2016-08-10 01:06:47
数据库程序几个Form怎么共享Form1上面的ADOConnection1?
用的是几个Form,没有用TPageControl。
...全文
303 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
FASM_FASM 2016-08-11
  • 打赏
  • 举报
回复
引用 4 楼 u010165006 的回复:
[quote=引用 3 楼 FASM_FASM 的回复:] 这个设计应该是随心所欲的吧: 最初考虑,为了各个模块间的复用,可以把这个连接保存到一个全局变量中,供各个窗体模块共享。 考虑到多线程安全性,把它封装为一个数据库连接类对象并加入互斥访问机制。 考虑到数据连接多样性,把它对外的接口进行抽象,并提供一个工厂类,这样根据不同的连接需要,创建不同的数据库链接。 考虑到以后多个程序需要使用,嗯,再加把劲。把他封装成类库(或组件)。 考虑到跨平台,跨主机共享。嗯把它实现为WebService服务。这下PC/手机/web/app/客户端都可以用了。 呵呵。
考虑到多线程安全性,把它封装为一个数据库连接类对象并加入互斥访问机制。 这个有例子吗?[/quote] 这个没例子,我只是提出一种设计想法。你可以考虑自己实现。实际上包括妖哥所说的datamodule都是这一想法的具体实现。 从设计模式角度来说就是数据逻辑与展现分离(到处喊声震天的MVC)。 这种产品太多太多了,但思想都一样。
ooolinux 2016-08-11
  • 打赏
  • 举报
回复
主要是数据模块独立出来,只包含必要的共享的组件。
ooolinux 2016-08-11
  • 打赏
  • 举报
回复
引用 5 楼 ccrun 的回复:
可以把公用的对象放在DataModule中,各个Form包含数据模块就行了。
这个方法不错,包含数据模块头文件后,各个Form的ADOQuery可以在对象检视器里选择Connection属性为DataModule1->ADOConnection1。
勉励前行 2016-08-11
  • 打赏
  • 举报
回复
目前程序如何设计,都满足不了需求,设计的考虑在于使用适当的封装,满足常用的要求。 过度封装是画蛇添足来的。 也就是不要希望有个类,能满足我们所有的要求。
ccrun.com 2016-08-10
  • 打赏
  • 举报
回复
可以把公用的对象放在DataModule中,各个Form包含数据模块就行了。
ooolinux 2016-08-10
  • 打赏
  • 举报
回复
引用 3 楼 FASM_FASM 的回复:
这个设计应该是随心所欲的吧: 最初考虑,为了各个模块间的复用,可以把这个连接保存到一个全局变量中,供各个窗体模块共享。 考虑到多线程安全性,把它封装为一个数据库连接类对象并加入互斥访问机制。 考虑到数据连接多样性,把它对外的接口进行抽象,并提供一个工厂类,这样根据不同的连接需要,创建不同的数据库链接。 考虑到以后多个程序需要使用,嗯,再加把劲。把他封装成类库(或组件)。 考虑到跨平台,跨主机共享。嗯把它实现为WebService服务。这下PC/手机/web/app/客户端都可以用了。 呵呵。
考虑到多线程安全性,把它封装为一个数据库连接类对象并加入互斥访问机制。 这个有例子吗?
FASM_FASM 2016-08-10
  • 打赏
  • 举报
回复
这个设计应该是随心所欲的吧: 最初考虑,为了各个模块间的复用,可以把这个连接保存到一个全局变量中,供各个窗体模块共享。 考虑到多线程安全性,把它封装为一个数据库连接类对象并加入互斥访问机制。 考虑到数据连接多样性,把它对外的接口进行抽象,并提供一个工厂类,这样根据不同的连接需要,创建不同的数据库链接。 考虑到以后多个程序需要使用,嗯,再加把劲。把他封装成类库(或组件)。 考虑到跨平台,跨主机共享。嗯把它实现为WebService服务。这下PC/手机/web/app/客户端都可以用了。 呵呵。
ooolinux 2016-08-10
  • 打赏
  • 举报
回复
引用 1 楼 PPower 的回复:
回望一下这些概念: 1.全局变量与局部变量. 2. #include 的作用. 3.对象及其指针的意义及用法. 整理后会得出 : 1,将需要共用的变量共用, 做成全局变量. 这里将ADO指针 Form1 作用全局变量都可以. 2.其他需要用到的地方 #include 对应的头文件 3.后面就是指针的用法了. 说起来哆嗦,做出来还快.
就是说其它窗体都这样了? #include "Unit1.h" ADOQuery1->Connection=Form1->ADOConnection1; 共用一个ADOConnection比每个窗体单独的Connection到数据库应该有好处吧? 有的书可能它的作者也没有意识到这一点。
勉励前行 2016-08-10
  • 打赏
  • 举报
回复
回望一下这些概念: 1.全局变量与局部变量. 2. #include 的作用. 3.对象及其指针的意义及用法. 整理后会得出 : 1,将需要共用的变量共用, 做成全局变量. 这里将ADO指针 Form1 作用全局变量都可以. 2.其他需要用到的地方 #include 对应的头文件 3.后面就是指针的用法了. 说起来哆嗦,做出来还快.

1,178

社区成员

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

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