老文章 收藏

uses
comobj;

{以下程序,1.mdb为主数据库,2.mdb为需要进行链接的数据库,含有一个表Table2}
procedure TForm1.Button1Click(Sender: TObject);
var
l_cat, l_tbl: OleVariant;
begin
{打开链接的要连接到的数据库,即主数据库}
l_cat := CreateOleObject('ADOX.Catalog');
l_cat.ActiveConnection := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/1.MDB';

l_tbl := CreateOleObject('ADOX.Table');
l_tbl.Name := 'Linked_Table2';//链接后的表的名称

{指出链接表的信息}
l_tbl.ParentCatalog := l_cat;
l_tbl.Properties('Jet OLEDB:Remote Table Name') := 'Table2';
l_tbl.Properties('Jet OLEDBink Datasource') := 'C:/2.MDB';
l_tbl.Properties('Jet OLEDB:Create Link') := True;

{进行链接操作}
l_cat.Tables.Append(l_tbl);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
l_cat, l_tbl: OleVariant;
i: Integer;
begin
{打开含有链接表的数据库}
l_cat := CreateOleObject('ADOX.Catalog');
l_cat.ActiveConnection := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/1.MDB';

l_tbl := CreateOleObject('ADOX.Table');

{遍历表,寻找链接表,同时刷新}
for i := 0 to l_cat.Tables.Count - 1 do
   if (l_tbl.Type = 'LINK') and (l_tbl.Name = 'Linked_Table2') Then
     l_tbl.Properties('Jet OLEDBink Datasource') := 'C:/2.MDB';
end;

 

 

 

var
    Path,Path1,Path2:String;
    l_cat,   l_tbl:   OleVariant;
    i,TblCount:Integer;
begin
    //Path为Test.MDB的路径  
    //Path1为A.MDB的路径  
    //Path2为A.MDB的路径

    //打开含有链接表的数据库
    l_cat:=   CreateOleObject( 'ADOX.Catalog ');
    l_cat.ActiveConnection   :=   'Provider=Microsoft.Jet.OLEDB.4.0;Data       Source= '+Path+ '/Test.mdb ';
    try
        //遍历表,寻找链接表,同时删除
        TblCount:=l_cat.Tables.Count;
        for   i   :=   TblCount   -   1   downto   0   do
        begin
            l_tbl:=l_cat.Tables[i];
            if   l_tbl.Type   =   'LINK '   Then
                l_cat.Tables.Delete(i);
        end;
        //创建新的链接信息
        l_tbl:=   CreateOleObject( 'ADOX.Table ');

        //指出链接表的信息
        l_tbl.Name   :=   'Test_1 ';       //链接后的表的名称
        l_tbl.ParentCatalog   :=   l_cat;
        l_tbl.Properties( 'Jet   OLEDB:Remote   Table   Name ')   :=   'A ';
        l_tbl.Properties( 'Jet   OLEDB:Link   Datasource ')   :=   Path1+ '/A.mdb ';
        l_tbl.Properties( 'Jet   OLEDB:Create   Link ')   :=   True;

        //添加连接表
        l_cat.Tables.Append(l_tbl);

        l_tbl.Name   :=   'Test_2 ';       //链接后的表的名称
        l_tbl.ParentCatalog   :=   l_cat;
        l_tbl.Properties( 'Jet   OLEDB:Remote   Table   Name ')   :=   'B ';
        l_tbl.Properties( 'Jet   OLEDB:Link   Datasource ')   :=   Path2+ '/B.mdb ';
        l_tbl.Properties( 'Jet   OLEDB:Create   Link ')   :=   True;

        //添加连接表
        l_cat.Tables.Append(l_tbl);
    finally
        l_Cat:=UnAssigned;
    end;
end.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值