我想取的本地服务器,或其他服务器的数据别名,我是个程序初学者,我想写一个动态连接数据库。可是我不知道该如何取数据库别名。请各位大虾指点一下,谢谢!

解决方案 »

  1.   

    1.得出远端数据库服务器上的所有数据库名称,在adoquery中sql语句用
       exec sp_databases就可以了
    2.获得所有表的名称用在adoquery中sql语句用
       exec sp_tables就可以了
      

  2.   

    procedure TfrmSetupDataBase.FormCreate(Sender: TObject);
    var SQLserver,serverlist:variant;
        i: integer;
    begin
      edServerName.Items.Clear;
      try
        SQLserver:=CreateOleObject('SQLDMO.application');
        serverlist:=SQLserver.ListAvailableSQLServers;
        for i:=1 to serverlist.count do
        edServerName.items.Add(serverlist.item(i));
        SQLServer := NULL;
        serverList := NULL;
      except
        application.MessageBox('您当前的机器没有安装SQL Server,无法导入SQL Server服务器列表,'+
                             #13+#10+'请直接输入SQL Server服务器名称!','信息提示',MB_OK+MB_ICONINFORMATION);
      end;
      edServerName.text:=trim(ReadRegisty('\SOFTWARE\'+pgname+'\clientset','Dbservername'));
      edLgnId.text:=trim(ReadRegisty('\SOFTWARE\'+pgname+'\clientset','LoginId'));
      edPwd.text:=trim(ReadRegisty('\SOFTWARE\'+pgname+'\clientset','LoginPwd'));
      edDataBase.text:=trim(ReadRegisty('\SOFTWARE\'+pgname+'\clientset','DataBaseName'));
      if trim(ReadRegisty('\SOFTWARE\'+pgname+'\clientset','TimeOut'))='' then
        edTimeOut.text:='15'
      else
      try
       edTimeOut.text:=trim(ReadRegisty('\SOFTWARE\'+pgname+'\clientset','TimeOut'));
      except
       edTimeOut.text:='15';
      end;
      

  3.   

    小陶!!!可不可把比较完整的代码发给我。E_MAIL:[email protected]
      

  4.   

    連到Master數據庫後, 用Select * from Sysdatabases就可以啦