如题.
图如下:
http://218.11.110.119/00.jpg
填上IP和USER 和PASS,后。点击连接,就可以远程连接上SQL服务器。
这个。我现在可以做到了。
如何在连接后,可以得到SQL上的所有的数据库名?及下属的表名? 请各位答复。解决问题,立即给分

解决方案 »

  1.   

    我为了与广大DELPHI爱好者共同讨论,建立了一个群,欢迎大家加入!
    群号是:5245338
      

  2.   

    procedure TForm1.ComboBox1Change(Sender: TObject);
    var
       US:string;
       IC:string;
       DS:string;
       PA:string;
    begin
       US := Edit3.Text ;
       PA := Edit4.Text ;
       IC := ComboBox1.SelText ;
       DS := Edit1.Text ;
    DataModule2.ADOConnection1.LoginPrompt := false;
    DataModule2.ADOConnection1.Close ;
    DataModule2.ADOConnection1.ConnectionString := 'Provider=SQLOLEDB.1;'
       +'Password='+PA+';Persist Security Info=True;User ID='+US+';'
       +'Initial Catalog='+IC+';Data Source='+DS;
    DataModule2.ADOConnection1.Open ;
    DataModule2.ADOTable1.TableName := 'sysobjects';
    DataModule2.ADOTable1.Open ;
    Form1.ComboBox2.Clear ;
    DataModule2.ADOTable1.First ;
    While not DataModule2.ADOTable1.Eof do
       begin
       if DataModule2.ADOTable1.FieldByName('xtype').AsString = 'U' then
       Form1.ComboBox1.Items.Add(DataModule2.ADOTable1.FieldByName('name').AsString);
       DataModule2.ADOTable1.Next ;
       end;
    DataModule2.ADOTable1.Close ;
    DataModule2.ADOTable1.TableName := '';
    end;这是一个取得数据库的所有表名的过程.不行,没有成功,显示为空.
    哪里出错了?是不是还有更好的方法?
      

  3.   

    procedure TForm1.ComboBox1Change(Sender: TObject);
    var
       US:string;
       IC:string;
       DS:string;
       PA:string;
    begin
       US := Edit3.Text ;
       PA := Edit4.Text ;
       IC := ComboBox1.SelText ;
       DS := Edit1.Text ;
    DataModule2.ADOConnection1.LoginPrompt := false;
    DataModule2.ADOConnection1.Close ;
    DataModule2.ADOConnection1.ConnectionString := 'Provider=SQLOLEDB.1;'
       +'Password='+PA+';Persist Security Info=True;User ID='+US+';'
       +'Initial Catalog='+IC+';Data Source='+DS;
    DataModule2.ADOConnection1.Open ;
    DataModule2.ADOTable1.TableName := 'sysobjects';
    DataModule2.ADOTable1.Open ;
    Form1.ComboBox2.Clear ;
    DataModule2.ADOTable1.First ;
    While not DataModule2.ADOTable1.Eof do
       begin
       //if DataModule2.ADOTable1.FieldByName('type').AsString = 'U' then
       Form1.ComboBox2.Items.Add(DataModule2.ADOTable1.FieldByName('name').AsString);
       DataModule2.ADOTable1.Next ;
       end;
    DataModule2.ADOTable1.Close ;
    DataModule2.ADOTable1.TableName := '';
    end;
    这个是最新的.
    这个的结果是在combo2里出现了所有的表,包括系统表,我如何可只让它出现用户表?
    请答复.
      

  4.   

    用Query查询或者用Table进行过滤
    select * from sysobjects where xtype='U'
      

  5.   

    http://www.china8000.com/con_mssql.exe
    我搞定了。
    软件名叫:
    万能连接_MSSQL
    只要知道IP  用户名 密码
    就能连接到远程序MSSQL,并能获得所有数据库,
    及数据库下的所有的表。
    大家试用下载。
    PS:我是刚学。
    大家不要笑我。
       if DataModule2.ADOTable1.FieldByName('xtype').AsString = 'U ' then
    这一行是关键,U后必须要有一个空格才行!!!自己结贴了。~~
      

  6.   

    不能给我自己分。
    ??/
    那没有人来帮我解决问题。
    我自己解决的。
    分为何不能给我?
    是我自己的分吗?
    晕?
    哪一个和我来倒分呀?
    给我20分。
    然后。
    在这里
    我在给你20分/
    晕ING。。
      

  7.   

    结帖不给分不就得了吗,何况才20分。而且wdonghai(小王) 说的并没有错啊