Tạo một bản đồ như thế này:
Map<String, Schema.SObjectField> fldObjMap = schema.SObjectType.Account.fields.getMap();
List<Schema.SObjectField> fldObjMapValues = fldObjMap.values();
Sau đó, bạn có thể lặp qua fldObjMapValues để tạo ra một chuỗi truy vấn SOQL:
String theQuery = 'SELECT ';
for(Schema.SObjectField s : fldObjMapValues)
{
String theLabel = s.getDescribe().getLabel(); // Perhaps store this in another map
String theName = s.getDescribe().getName();
String theType = s.getDescribe().getType(); // Perhaps store this in another map
// Continue building your dynamic query string
theQuery += theName + ',';
}
// Trim last comma
theQuery = theQuery.subString(0, theQuery.length() - 1);
// Finalize query string
theQuery += ' FROM Account WHERE ... AND ... LIMIT ...';
// Make your dynamic call
Account[] accounts = Database.query(theQuery);
superfell là đúng, không có cách nào để trực tiếp làm một SELECT *. Tuy nhiên, công thức mã nhỏ này sẽ làm việc (tốt, tôi đã không thử nghiệm nó nhưng tôi nghĩ rằng nó sẽ ok). Có thể hiểu Force.com muốn một kiến trúc nhiều người thuê nhà, nơi tài nguyên chỉ được cung cấp một cách rõ ràng cần thiết - không dễ dàng bằng cách thực hiện SELECT * khi thường chỉ có một nhóm nhỏ các trường thực sự cần thiết.
nhờ trả lời của bạn. Bạn có muốn chia sẻ một ví dụ hay không, để xây dựng truy vấn từ describeSObject. – Sukhhhh