There are two available ways for updating a database in a procedure:
- Direct insertion with New command (this code can only be included in a procedure source):
New
CustomerId = &CustomeriId
CustomerName = &CustomerName
Endnew
- Insertion using the business components concept (this code can be included in a procedure source and in other GeneXus objects in it's events section):
&Customer.CustomerId = &CustomerId
&Customer.CustomerName = &CustomerName
&Customer.Save()
Commit
The question is, which of these two methods is better?
The answer, as often happens, is: it depends! From the point of view of performance, the first method is preferred, since there are no controls involved and the generated SQL sentence will be optimized for bulk updates. On the other hand, from the point of view of consistency, the second method is best, since all the controls will be enforced independently if data comes from a Form or from a procedure.
So a good rule of thumb would be to always use Business Components unless performance is critical.