Page 1 of 1

problems with ODAC 6

Posted: Wed 13 May 2009 16:43
by spiller72
I installed new ODAC 6 on Delphi7 and I've many problems with tOraQuery components (problem with provider flags, applyupdates, SQLInsert,Update,Delete, reconcile error...).

Before, I worked with ODAC 4 without any of these problems.

Please help!

Posted: Thu 14 May 2009 06:12
by Plash
Please describe all problems in details.

...describe problem

Posted: Thu 14 May 2009 09:00
by spiller72
After applyupdates I analyze problem trough SQLMonitor and I saw difrence between Odac4(O4) and Odac6(O6).
I use tOraQuery and in O4 sql update dinamicly create and in O6 not. Here is example:
****************************************************
ODAC6
Start:

SQL Execute [Update]: UPDATE table
SET
column1 = :column1,
column2 = :column2,
column_n = :column_n....
WHERE
pk_column = :OLD_pk_column

:column1(FLOAT)='14.05.2009 10:22:05'
:column2(FLOAT)=2009
:column_n(FLOAT)=6
:OLD_pk_column(FLOAT)=18

Error: ORA-20143: error message
ORA-06512: at "NROB.PACKAGE", line 1311
ORA-06512: at "NROB.trigger_procedure1", line 2
ORA-04088: error during execution of trigger 'NROB.trigger_procedure1'

Commit:
**************************************************
ODAC4
SQL Execute: begin :result := sys.dbms_transaction.local_transaction_id(true); end;

:result(VARCHAR[0])=

SQL Execute: update TABLE set
COLUMN1 = :1
where
PK_COLUMN = :2

:1(IN)='14.05.2009 10:22:05'
:2(FLOAT,IN)=18

Error: ORA-20143: error message
ORA-06512: at "NROB.PACKAGE", line 1311
ORA-06512: at "NROB.trigger_procedure1", line 2
ORA-04088: error during execution of trigger 'NROB.trigger_procedure1'

SQL Execute: select PK_COLUMN
from TABLE
where
PK_COLUMN = :1

:1(FLOAT,IN)=18

Commit: [email protected]
**************************************************

Posted: Mon 18 May 2009 08:08
by Plash
ODAC 6 has the new feature: if you assign a value to the SQLUpdate property of TOraQuery, this statement is used when you call TClientDataSet.ApplyUpdates. You should clear the SQLUpdate property to make ODAC generate an update statement automatically.