要把指定数据库中的所有表名显示在combobox中,用代码怎么实现呢?谢谢各位大侠小侠!

解决方案 »

  1.   

    看你是什么数据库了,ORACLE的放有个USER_TABLE,SQL SERVER 的话有个SYSOBJECT 一个SELECT 语句,一个循环,然后把要加的表放加COMBOX里就行了,
      

  2.   

    form1.ADOConnection1.GetTableNames(ComboBox1.Items,true/false);
    true:显示系统表
    false:不显示系统表
      

  3.   

    ADOConnection1.GetTableNames(ComboBox1.Items);
      

  4.   

    还可以把combobox改用DBLookupComboBox1,然后设定其ListSource和DataSource就行了。
      

  5.   

    看你用的什么数据库控件了,如果是ADO就像上面所说的
      ADOConnection1.GetTableNames(ComboBox1.Items);
    如果是BDE就是:
     Database1.GetTableNames(ComboBox1.Items);
      

  6.   

    ADOConnection1.GetTableNames(ListBox1,false/true);
    false:不显示系统表
    true:显示系统表
    看看GetTableNames的原型的吧。procedure TADOConnection.GetTableNames(List: TStrings;
      SystemTables: Boolean);
    var
      TypeField,
      NameField: TField;
      TableType: string;
      DataSet: TADODataSet;
    begin
      CheckActive;
      DataSet := TADODataSet.Create(nil);
      try
        OpenSchema(siTables, EmptyParam, EmptyParam, DataSet);
        TypeField := DataSet.FieldByName('TABLE_TYPE'); { do not localize }
        NameField := DataSet.FieldByName('TABLE_NAME'); { do not localize }
        List.BeginUpdate;
        try
          List.Clear;
          while not DataSet.EOF do
          begin
            TableType := TypeField.AsString;
            if (TableType = 'TABLE') or (TableType = 'VIEW') or     { do not localize }
               (SystemTables and (TableType = 'SYSTEM TABLE')) then { do not localize }
              List.Add(NameField.AsString);
            DataSet.Next;
          end;
        finally
          List.EndUpdate;
        end;
      finally
        DataSet.Free;
      end;
    end;
      

  7.   

    回复人: hjf8086(hjf)
    ding!!!