1) database-updates via DML in a sqlexec-statement (e.g. INSERT to ps_test_table VALUES (' value_field_1′, ' value_field_2′ ), triggered via an online component:
Peoplebooks states that DML in a sqlexec-statement are only allowed in Fieldchange, Saveprechange, Workflow and Savepostcha Nge events.
There ' s a big difference in the outcome per event though; When this statement was put in a fieldchange-event, the DML was committed instantly, and this was something you probably don ' T want!
2) Database-updates via DML in a sqlexec-statement (e.g. INSERT to ps_test_table VALUES (' value_field_1′, ' value_field_2′ ), triggered via an application Engine:
These updates is being committed according the AppEngine ' s commit-settings.
2) Database-updates via a component interface, triggered via an online component (e.g. component A triggers component inte Rface b_ci, triggering component B):
These updates be being committed as soon as the CI Save-method is being invoked from the calling component (e.g. Componen T A).
3) Database-updates via a component interface, triggered via an application Engine (eg. AppEngine ae_1 triggers component interface B_ci, triggering component B):
These updates is being committed according the AppEngine ' s commit-settings.
An exception to the rule I just recently encountered:the Getfile-statement leads to a immediate commit, even when used In an appengine-context!
When manipulating the record in plsql, it is necessary to handle the commit manually, and sometimes a lock table may occur.
When would a databasechange be committed?