主程序建立一个数据库连接,如何把这个连接传到dll里去,让dll里的Query,Table都使用这个连接。就象ADO里,Connection一次以后,只需要这个连接赋给Query.Connection就可以了,BDE里好象没办法赋值啊。

解决方案 »

  1.   

    这个主要在定义dll的时候要考虑到。
    你可以在接口函数中设计一个参数为连接参数。
    例如这样的接口函数;
    Procedure SetDatabase(dbname:string)
    这样就可以设置一个database的别名传给一个公有变量。这样你建立的table和query都可以设置自己的databasename属性了,也就可以完成连接了。这样两者连接的就是同一个数据库了。
      

  2.   

    BDE是用别名呀
    query,table直接使用其别名就OK!
      

  3.   

    用DataBase,用法与ADOConnecton类似!
      

  4.   

    不会呀,你们说的我都试过了,用得不是一个连接,在接口函数的参数里传一个连接进dll,在dll里查询数据库时无法使用的连接不是这个连接,虽然这个连接有效,但Query并不使用他。不知道是为什么?
    就好比说一个窗体上有很多Query和DataBase,怎么确定Query连接时用的是哪个DataBase.用ADO2传一个连接进Dll用起来一点问题都没有,但BDE该怎么传?
      

  5.   

    to:fhuibo(Sailor):
    caohonglong2000(chl) :
    我不是问得怎么连接同一个数据库。
    我的意思是说我只想与数据库建立一次连接,然后以后不管在什么地方我所有的数据库操作只使用这一个连接。就象ADO里,ADOConnection连接一次数据库后,其他所有的数据库操作都可以只使用这一个连接。BDE怎么好象只要是数据库操作他自己就建一次数据库操作。
      

  6.   

    TDatabase 与 TADOConnection 都是从 TCustomConnection 继承来的,它们都是连接。
    用 BDE 时,只要设置 Query或的 Table 的 DatabaseName 属性为 某个 TDatabase 组件的 DatabaseName 属性就行了。
      

  7.   

    此问题我已自己解决,不用再答了。
    传TSession过去就行了。