用什么方法能得到数据库中所有的表的名字,并切列到
listbox中!

解决方案 »

  1.   

    procedure GetTableNames(List: TStrings; SystemTables: Boolean = False);Database1.GetTableNames(ListBox1.Items, False);  // or true
      

  2.   

    具体一点!我用的是adotable,adoquery,adoconnection,dbgrid,datasource.
      

  3.   

    adoconnection.GetTableNames(ListBox1.Items, False);
    第二個參數指要不要包含系統表.
      

  4.   

    AdoTable1.Close;
      AdoTable1.TableName := ListBox1.Items[ListBox1.ItemIndex];
      AdoTable1.Open;其他的一样。
      

  5.   

    错了,上面那个是得到一个表中的所有字段。
    下面这个才是得到一个库中的所有表,而且支持动态连接打开procedure TForm1.N12Click(Sender: TObject);
    var
      mdb_name: String;
    begin
      try
        OpenDialog1.Execute;
        mdb_name := OpenDialog1.FileName;
        AdoConnection1.Close;
        AdoConnection1.ConnectionString :='Provider=Microsoft.Jet.OLEDB.4.0;'+
          'Data Source='+ mdb_name +';Persist Security Info=False';
        AdoConnection1.Open;
        AdoConnection1.GetTableNames(ListBox1.Items,False); 
      except
        Application.MessageBox('打开数据库失败!','提示',mb_OK);
        Exit;
      end;
    end;