Saturday, February 29, 2020

dynamic soql to fetch all fields of an object in salesforce using schema class

Dynamic SOQL query to fetch all fields in Salesforce Dynamic SOQL query to fetch all fields in Salesforce salesforce Dynamic SOQL query Salesforce SOQL is Salesforce Object Query Language for querying data in the Force.com platform. It is very much similar to SQL. But in SOQL, we can not query all fields from object. This statement is not allowed in SOQL: select * from Account; But there is one trick to query all fields of Object in SOQL query. In the example below, we will use SOQL query to fetch all fields of account. We have added one ‘Fetch Account’ button on page. When we will click on this button all fields of account objects are fetched using SOQL query. We have also shown SOQL query in Visualforce page result. Click for Demo Visualforce Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Apex Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 public class selectAllSOQLExampleController { public List accList{get;set;} public String query{get;set;} public selectAllSOQLExampleController(){ } public PageReference fetch(){ String SobjectApiName = 'Account'; Map schemaMap = Schema.getGlobalDescribe(); Map fieldMap = schemaMap.get(SobjectApiName).getDescribe().fields.getMap(); String commaSepratedFields = ''; for(String fieldName : fieldMap.keyset()){ if(commaSepratedFields == null || commaSepratedFields == ''){ commaSepratedFields = fieldName; }else{ commaSepratedFields = commaSepratedFields + ', ' + fieldName; } } query = 'select ' + commaSepratedFields + ' from ' + SobjectApiName + ' Limit 5'; accList = Database.query(query); return null; } }