知识大全 在Delphi中如何维护COM+的状态信息[1]

Posted 数据库

篇首语:学习如钻探石油,钻得愈深,愈能找到知识的精髓。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在Delphi中如何维护COM+的状态信息[1]相关的知识,希望对你有一定的参考价值。

在Delphi中如何维护COM+的状态信息[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  问题是这样开始的 我需要写一个+ 用来连接不同的数据库 有的朋友可能会说 应该为每个数据库建立一个+ 但是在我的系统里不能这样 我们在做一个教育辅助系统 用户是学校(当然包括学校里的老师 学生 家长) 我们为每个学校建一个数据库 这些数据库的结构是相同 当然我们还有管理数据库 用于协调各数据库的关系 每增加一个学校用户 我们就激活一个新的数据库给客户使用 也就是说 我们的数据库的个数是不断增加的 而我们的客户端只有一个 我们不会为每个学校开发不同的客户端 我们的+也只有一组 而不是为每个数据库开发一组 所以我必须在+中根据用户的身份让它去连接不同的数据库

  很显然 这个+应当提供一个方法 让其调用者(可以是客户端应用程序 也可以是其它的中间件)去选择连接的数据库 在实际中我们是根据用户的ID在管理库中查到它的数据库名 然后连接用户数据库 在这里 为了简化问题 我们认为调用者已经知道了数据库的名字 而直接要求调用这个数据库

  在+的类中增加一个私有成员DBName:string 用于保存要连接的数据库名称 还应该提供这样一个方法来设置它的值 我开始是这样写的

  procedure   TmtsDBConn ConnectTo(sDBName:string)

  begin

    try

       DBName:=sDBName;

       SetComplete;

    Except

      SetAbort;

    end;

  end;

  然后在其中放入ADOConnection ADODataSet 和DataSetProvider控件 分别取名为adoc adods dsp 设置好它们之间的连接关系 把adoc的连接字符串设为连接数据库 DB 这是默认值 然后在adoc的BeforeConnect事件中

  adoc ConnectionString:=ConnectStringA+´Initial Catalog=´+DBName+´;´+ConnectStringC;

  这里的ConnectStringA和ConnectStringC是为了动态构建连接字符串 预先设置好的字符串常量 如下

  const

  ConnectStringA=´Provider=SQLOLEDB ;Password= ;Persist Security Info=True;User ID=sa;´;

  ConnectStringB=´Initial Catalog=DB ;´;

  ConnectStringC=´Data Source=server ;Use Procedure for Prepare= ;Auto   Translate=True;Packet Size= ;Workstation ID=LXM;Use Encryption for Data=False;Tag with column collation when possible=False´;

  编译 安装这个+ 然后编写客户端程序调用它

  在客户端程序中放一个DConnection 连接到上面编写+服务器 再放一个ClientDataSet 设置它的RemoteServer和Provider属性 然后在它的CommandText中写入SQL语句 然后 放入DataSource控件和DBGrid控件 建立好它们之间的连接关系 最后放一个按钮 在它的Click事件中

  Dconnection Connected:=true;

  Dconnection AppServer connect(´DB ´);

  ClientDataset Active:=true;

  Dconnection Connected:=false;

  这段代码是想测试一下 能不能访问到DB 数据库的数据 可是结果是 点下按钮时 总是报错 这是什么原因呢?

cha138/Article/program/Delphi/201311/24837

相关参考

知识大全 用DELPHI在状态栏中显示进程条[1]

用DELPHI在状态栏中显示进程条[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!经常上网的朋

知识大全 职员信息维护功能的实现(一)[1]

    ——此文章摘自《Delphi数据库开发经典案例解析》定价¥ 特价¥ 购买>>//tracklinktechcn/?m_id=dangdang

知识大全 职员信息维护功能的实现(二)[1]

    ——此文章摘自《Delphi数据库开发经典案例解析》定价¥ 特价¥ 购买>>//tracklinktechcn/?m_id=dangdang

知识大全 用DELPHI在状态栏中显示进程条[2]

用DELPHI在状态栏中显示进程条[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  上面的步

知识大全 职员信息维护功能的实现(一)[2]

    ——此文章摘自《Delphi数据库开发经典案例解析》定价¥ 特价¥ 购买>>//tracklinktechcn/?m_id=dangdang

知识大全 职员信息维护功能的实现(二)[3]

    ——此文章摘自《Delphi数据库开发经典案例解析》定价¥ 特价¥ 购买>>//tracklinktechcn/?m_id=dangdang

知识大全 职员信息维护功能的实现(二)[2]

    ——此文章摘自《Delphi数据库开发经典案例解析》定价¥ 特价¥ 购买>>//tracklinktechcn/?m_id=dangdang

知识大全 Delphi中用API实现在MSN的信息提示

Delphi中用API实现在MSN的信息提示  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  我是

知识大全 使用Delphi获取系列信息

使用Delphi获取系列信息  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Delphi以其优良的可

知识大全 在Delphi中建立和使用别名[1]

在Delphi中建立和使用别名[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  通常我们在D