November 3, 2016 by LanceShi
1.5 Use Database Object to do DML operations
In our last post we have mentioned that DML statements only executes in one transaction. So what if we want some of the data to be persisted if we can, regardless of others may fail? Database operations will serve us for that purpose.
Remember the validation rule we have created in our last post? We still need it.
Below is our code for today:
Merchandise__c mer1 = new Merchandise__c(); mer1.name = 'Books'; mer1.Original_Price__c = 20; Merchandise__c mer2 = new Merchandise__c(); mer2.name = 'Bike'; mer2.Original_Price__c = 300; List<Merchandise__c> merList = new List<Merchandise__c>(); merList.add(mer1); merList.add(mer2); Database.insert(merList, false);
A bit explanation
Please note there is always only one line different from last post’s code: Line 12. And the result is different.
Database methods have two parameters, the first one is the list to be operated on, and the second one is whether it is all or none mode. If we choose false, it can be partially succeed mode. That’s why when we executed the above code, it successfully inserted one row into database.
Create a scenario where you need to update a list of records, and it partially succeed. Try to write the code.