2012-09-25 15 views

Respuesta

9

Desde dentro de Apex, se puede obtener esta ejecutando el siguiente fragmento de código Apex. Si su tabla/objeto se llama MyObject__c, esto le dará un conjunto de nombres de API de todos los campos en ese objeto al que tiene acceso (esto es importante --- incluso como administrador del sistema, si ciertos campos en su tabla/objeto no son visibles a través de Nivel de campo de Seguridad para usted, que no aparecen aquí):

// Get a map of all fields available to you on the MyObject__c table/object 
// keyed by the API name of each field 
Map<String,Schema.SObjectField> myObjectFields 
    = MyObject__c.SObjectType.getDescribe().fields.getMap(); 

// Get a Set of the field names 
Set<String> myObjectFieldAPINames = myObjectFields.keyset(); 

// Print out the names to the debug log 
String allFields = 'ALL ACCESSIBLE FIELDS on MyObject__c:\n\n'; 
for (String s : myObjectFieldAPINames) { 
    allFields += s + '\n'; 
} 
System.debug(allFields); 

para terminar esto, y lograr SELECT * FROM MYTABLE funcionalidad, lo que se necesita para construir una consulta SOQL dinámico utilizando estos campos:

List<String> fieldsList = new List<String>(myObjectFieldAPINames); 
String query = 'SELECT '; 
// Add in all but the last field, comma-separated 
for (Integer i = 0; i < fieldsList.size()-1; i++) { 
    query += fieldsList + ','; 
} 
// Add in the final field 
query += fieldsList[fieldsList.size()-1]; 
// Complete the query 
query += ' FROM MyCustomObject__c'; 
// Perform the query (perform the SELECT *) 
List<SObject> results = Database.query(query); 
2

la llamada a la API describeSObject devuelve todos los metadatos sobre un objeto/tabla determinada, incluidos sus campos. Está disponible en SOAP, REST & Apex APIs.

1

Intente utilizar Schema.FieldSet

Schema.DescribeSObjectResult d = Account.sObjectType.getDescribe(); 
Map<String, Schema.FieldSet> FsMap = d.fieldSets.getMap(); 

complete documentation

+0

¿Cómo puedo consultar esto con SOQL? – Maverick

+0

Creo que no es posible usar solo SOQL ... puedes hacerlo usando Javascript (o cualquier lenguaje de implementación de API), o Apex como yo respondí. –

+0

Puede ver su misma pregunta y la misma respuesta aquí: http://stackoverflow.com/questions/8780413/salesforce-soql-query-to-fetch-all-the-fields-on-the-entity –

-4

Ha intentado DESC myTable?

Para mí funciona bien, también está en los consejos subyacentes en cursiva. Mire:

enter image description here

+0

[sf: MALFORMED_QUERY] MALFORMED_QUERY: token inesperado: DESC –

+0

Interesante. Esto funciona para mi. – Riccardo

Cuestiones relacionadas