我也有类似的问题,不过已经解决了部分,下面是我的思路。
创建TDatabase控件,在设计阶段什么也不修改,所有的参数全部动态创建!
但是只是第一次连接正确,如果我在不退出应用程序的情况下继续连接,则提示错误:
Name not unique in this context.
没戏了!
后来我想到是不是TDatabase也动态创建才可以,但是还没有来的及试验,没时间!
OK!

解决方案 »

  1.   

    我做了测试,可以实现你说的功能,动态设置database的属性,变换数据表的名称,所作的操作是一样的,不会出现错误提示
    下面是代码
       database1.Connected:=false;
       database1.Params.Values['DATABASE NAME']:='D:\db1.mdb';
       database1.DatabaseName:='bb';
       database1.Connected:=true;
       table1.Active:=false;
       table1.DatabaseName:='bb';
       table1.TableName:='usertable';
       table1.Active:=true;
    所有控件都是设计期创建的,没有动态创建
      

  2.   

    如果是PARADOX7类型的数据库可不可以呢?谢谢
      

  3.   

    这个问题很好解决的,我做的程序都是这样的。
    不用配置Tdatabasename,
    设计时在BDE中建好别名。TDatabasename连好,
    在程序中,需要改变时别名时,动态创建,可看一下tsession的方法。
    isalias,deletealias,addalias