用  adocon.GetTableNames(Ckb.Items, false)可以得到数据库里的所有用户表
但表的显示格式是XM,XB
但实际上我希望他能连用户都显示出来,如A.XM,B.XB
A,B为用户,各位有什么好方法吗?

解决方案 »

  1.   

    你用的是什么数据库?
    如果是Oracle是自动加上去的
      

  2.   

    haoco(程序员) ( 
    你用GetTableNames如果是它自己加上去的,算你狠
    摆脱搞懂问题先sixgj(轰炸机) 
    你也一样
      

  3.   

    你可以重载TADOConnection的GetTableNames方法也可以用下面这个,我在SQL Server里测试没问题procedure TForm1.GetTableNames(Conn: TAdoConnection; List: TStrings;
      SystemTables: Boolean);
    var
      OwnerField, TypeField, NameField: TField;
      TableType: string;
      DataSet: TADODataSet;
    begin
      DataSet := TADODataSet.Create(nil);
      try
        Conn.OpenSchema(siTables, EmptyParam, EmptyParam, DataSet);
        OwnerField := DataSet.FieldByName('TABLE_SCHEMA');
        TypeField := DataSet.FieldByName('TABLE_TYPE');
        NameField := DataSet.FieldByName('TABLE_NAME');
        List.BeginUpdate;
        try
          List.Clear;
          while not DataSet.EOF do
          begin
            TableType := TypeField.AsString;
            if (TableType = 'TABLE') or (TableType = 'VIEW') or
               (SystemTables and (TableType = 'SYSTEM TABLE')) then
              List.Add(OwnerField.AsString + '.' + NameField.AsString);
            DataSet.Next;
          end;
        finally
          List.EndUpdate;
        end;
      finally
        DataSet.Free;
      end;
    end;