If you are calling a form from a form that runs in query only mode, the called form is query only too. Specifying no_query_only doesn't help.
Form A (query_only) calls B (no_query_only), than B runs in query_only mode too.
Could that be your case?
I can update data on the calling and called forms which mean that it is not query only right?
I don't understand from where this error came!!
there is something else pause this error! can you help me?
I found the sloutin by replacing commit to forms_ddl('commit');