我做一个毕业设计,使用DBD建立了三个表,使用BDE连接,在几个子窗体中使用了Ttabel, 或Tquery,其中属性databsename设置为数据库的路径或者别名,问题是把这个编译好的程序移到别的机器上时,之前生成的exe无法执行,因为这个数据库路径变了,还得重新设定,编译,怎么样能够把表封装进去,才不会出现上面的问题?附问题2:
  这个客服端调用一个com对象的dll中的接口方法,在这个程序移到别的机器上时,要对这个dll注册,因为这个dll是通过emport导入到客户端程序中的,因而路径变了后,还得在delphi中重变一下,这么样才能只需要注册这个dll就可以了,而不学要在编译一次?????
大虾们快来啊!!!

解决方案 »

  1.   

    如果是用BDE的话比较麻烦,ADO的可以通过文件流的方式附加进去COM对象注册了应该就没有路径的问题了吧,一注册SYSTEM32下应该就有这个文件了吧期待高手
      

  2.   

    是通过regsvr32注册的,我的那个客户端调用这个dll中的接口方法,在delphi中通过emport type library把这个dll导入到程序中,注册的为getwp.dll
    program mian;uses
      Forms,
      pfen in 'pfen.pas' {Form1},
      chaxun in 'chaxun.pas' {Form3},
      getproperties in 'getproperties.pas' {Form4},
      duibi in 'duibi.pas' {Form5},
      dengji in 'dengji.pas' {Form6},
      chafen in 'chafen.pas' {Form2},
      
     //  在这里出现了getwp.dll对应的库文件的位置,程序移到别的机器上,dll保存路径变了,虽然注册了,但这里没变
     //就会出错exe执行出现错误,得重编译,把下面的这个路径变为新的。
     getwp_tlb in 'E:\毕业设计\wdpdll\getwp_TLB.pas',
      xianshi in 'xianshi.pas' {Form7},
      login in 'login.pas' {Form8},
      help in 'help.pas' {Form9};{$R *.res}
    begin
      Application.Initialize;