RefreshRecord problem in D3

  • Thread starter Thread starter Ol
  • Start date Start date

Ol

Member
I use TOracleDataset with RefreshOptions=[roAllFields] and following SQL (for example):

Code:
SELECT emp.ROWID FROM Scott.emp, Scott.dept
where dept.deptno = emp.deptno AND emp.sal < 5000
after opening the dataset I execute RefreshRecord method.
As result, I see in Oracle Monitor my query with text:

Code:
...and  (SCOTT.EMP.rowid = :doa__rowid)
ОК, it's a good job.
But, when I try to execute the long SQL-query I have wrong situation - my query is supplemented with another text:
Code:
... where SCOTT.EMP.rowid = :doa__rowid
!

As result, I have 2 "where" in query and get error message :(

Exact SQL here (sorry for long message):
1. Correct SQL:

Code:
SELECT emp.ROWID, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc,
 dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc
 FROM Scott.emp, Scott.dept WHERE dept.deptno = emp.deptno AND emp.sal < 5000
after RefreshRecord:

Code:
SELECT emp.ROWID, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc FROM Scott.emp, Scott.dept
where (dept.deptno = emp.deptno AND emp.sal < 5000)
and
(SCOTT.EMP.rowid = :doa__rowid)
2. Incorrect SQL ("dept.loc" - has been added.):

Code:
SELECT emp.ROWID, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc,
 dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc
FROM Scott.emp, Scott.dept WHERE dept.deptno = emp.deptno AND emp.sal < 5000
after RefreshRecord:

Code:
SELECT emp.ROWID, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc, dept.loc FROM Scott.emp, Scott.dept WHERE dept.deptno = emp.deptno AND emp.sal < 5000
where SCOTT.EMP.rowid = :doa__rowid
Error message: "ORA-00933: SQL command not properly ended" :(

DOA 4.1.0.0. D3. There is no such problem in D7.

Why? And how I can use RefreshRecord with "long" queries in D3?

Thanks.
 
Back
Top