We have an n-Tier production application, developed with Delphi 7 along with ODAC latest version.
We try to upgrade the application server tier under Delphi XE5 with the corresponding DACs on Windows 7 64 bit OS.
We encounter 2 problems:
1. Regardless build platform, when trying to update a multiple master-detail structure.
Adding a new record in a detail table - the generated insert query is ok - the detail table is updated;
after that we send a DataRequest to the master table to retrieve the updated structure (master and details); the queries which have to get the inserted/updated records from details don't appear at all, although, the corresponding queries for other unmodified detail table are.
Here are the queries from a tracer at inserting a record in DOCVLN1 table:
Code: Select all
18-Oct-2014 22:49:32.189 TEST Super(1) Start:
18-Oct-2014 22:49:32.502 insert into DOCVLN1
(DVLN1ID, LINEORD, DOCID, ITEMID, CCOSTID, DVLN1QTY, DVLN1PUNIT, VALTVA, PRCTVA, DVLN1PUNITDEV, VALTVADEV, UMID, UMFACTOR, XLNID, PVA, DISC)
values
(:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16)
:1(INTEGER,IN)=282137856
:2(INTEGER,IN)=3
:3(INTEGER,IN)=239342
:4(INTEGER,IN)=10611
:5(INTEGER,IN)=<NULL>
:6(FLOAT,IN)=5
:7(FLOAT,IN)=9
:8(FLOAT,IN)=0
:9(FLOAT,IN)=0
:10(FLOAT,IN)=9
:11(FLOAT,IN)=0
:12(INTEGER,IN)=1
:13(FLOAT,IN)=1
:14(INTEGER,IN)=0
:15(FLOAT,IN)=0
:16(FLOAT,IN)=0
18-Oct-2014 22:50:36.260 TEST Super(1) select DOCVLN1_seq.currval TID from dual
18-Oct-2014 22:55:55.681 update DOCVHD set
DOCVALUE = :1,
DOCBTVAVAL = :2,
DOCVALUEDEV = :3,
DOCBTVAVALDEV = :4
where
DOCID = :5
:1(FLOAT,IN)=426.61
:2(FLOAT,IN)=426.61
:3(FLOAT,IN)=426.61
:4(FLOAT,IN)=426.61
:5(INTEGER,IN)=239342
18-Oct-2014 22:56:09.391 update DOCHD set
DOCTIME = :1
where
DOCID = :2 and
DOCDATE = :3 and
ISANULAT = :4 and
ISVALID = :5 and
ORDINALNO = :6
:1(DATE,IN)=18-Oct-14 22:49:32
:2(INTEGER,IN)=239342
:3(INTEGER,IN)=20141018
:4(INTEGER,IN)=0
:5(INTEGER,IN)=0
:6(INTEGER,IN)=2000
18-Oct-2014 22:56:42.204 TEST Super(1) Commit:
18-Oct-2014 22:56:42.345 TEST Super(1) SELECT T.*
FROM DOCHD T
WHERE DOCID=239342
18-Oct-2014 22:56:42.822 TEST Super(1) SELECT T.*
FROM DVSN T
WHERE (SERNOSTOC=0) AND DVLN1ID = :DVLN1ID
ORDER BY DVLN1ID
:DVLN1ID(INTEGER,IN)=256679
18-Oct-2014 22:56:42.897 TEST Super(1) SELECT T.*
FROM DVSN T
WHERE (SERNOSTOC=0) AND DVLN1ID = :DVLN1ID
ORDER BY DVLN1ID
:DVLN1ID(INTEGER,IN)=256681
18-Oct-2014 23:28:33.099 TEST Super(1) SELECT T.*
FROM DOCHD T
WHERE DOCID=239342
18-Oct-2014 23:28:33.577 TEST Super(1) SELECT T.*
FROM DVSN T
WHERE (SERNOSTOC=0) AND DVLN1ID = :DVLN1ID
ORDER BY DVLN1ID
:DVLN1ID(INTEGER,IN)=256679
18-Oct-2014 23:28:33.651 TEST Super(1) SELECT T.*
FROM DVSN T
WHERE (SERNOSTOC=0) AND DVLN1ID = :DVLN1ID
ORDER BY DVLN1ID
:DVLN1ID(INTEGER,IN)=256681
DOCHD is the master table, DOCVLN1, DOCVHD are the detail tables; DVSN is DOCVLN1's detail. There are 2 queries against DVSN because DOCVLN1 had 2 records before the insert.
It appears that problem is related with one similar on SDAC section.
2. On an similar OS (64 bit windows 2003 server), but with Oracle 10.2g database (on a 64 bit Linux server), the application raise "Exception: C:\OraClient64\BIN\*.*", even there is no such folder.
The Oracle InstantClient is for both 32/64 bit version.
Any help would be a big step forward.
Thank you,
Radu B.