Dynamic Query on Static Browse

Fox

New Member
Hello,
I have the following error:
"QUERY-PREPARE text must have 1 FOR EACH/PRESELECT for each query buffer. (7325)
Same default buffer was used for the two instances of the same table",
when i use a dynamic query of a static browse.
Static Browse whith 2 tables:
sart and t_sartnmc (1 sart -> n t_sartnmc).

Progress9.1E02 on Windows2000/XP.

Does anyone knows what's wrong?
Thanks in advance.

/*== Code ==*/
DEF VAR Qp as char NO-UNDO.

DEF BUFFER SSart1 FOR sart.
DEF BUFFER SSart2 FOR sart.
DEF BUFFER tsartNmc1 FOR t_sartNmc.

DEF VAR Hbrowse AS HANDLE NO-UNDO.
DEF VAR hQuery AS HANDLE NO-UNDO.

hBrowse = BPaf:HANDLE IN FRAME Fpaf.

CREATE QUERY hQuery.
hquery:set-buffers(BUFFER Sart:HANDLE).
hquery:set-buffers(BUFFER t_sartnmc:HANDLE).
hquery:set-buffers(BUFFER sSart1:HANDLE).
hquery:set-buffers(BUFFER tsartnmc2:HANDLE).
hquery:set-buffers(BUFFER sSart2:HANDLE).
Qp = "FOR EACH Sart NO-LOCK"

+ ",EACH t_sartnmc OF SSart1 WHERE t_sartNmc.TypeNmc = 'MP'
AND t_sartNmc.IdNmc = STRING(6962) NO-LOCK"

+ ",EACH tsartnmc2 OF SSart2 WHERE
tsartNmc2.TypeNmc = 'C' NO-LOCK"

+ SortBy + " INDEXED-REPOSITION ".

hquery:QUERY-PREPARE(Qp). /* Error(7325) */
hbrowse:QUERY = hquery.
hquery:QUERY-OPEN().

....
 
Your query doesn't contain any clauses for sSart1 and sSart2 buffers, you have to include them into QUERY-PREPARE string.
 
Thanks :) ! ,I try with this but don't work, same error message "(7325)" :(.

/*== Code ==*/
DEF VAR Qp as char NO-UNDO.

DEF BUFFER SSart1 FOR sart.
DEF BUFFER SSart2 FOR sart.
DEF BUFFER tsartNmc1 FOR t_sartNmc.

DEF VAR Hbrowse AS HANDLE NO-UNDO.
DEF VAR hQuery AS HANDLE NO-UNDO.

hBrowse = BPaf:HANDLE IN FRAME Fpaf.

CREATE QUERY hQuery.
hquery:set-buffers(BUFFER Sart:HANDLE).
hquery:set-buffers(BUFFER t_sartnmc:HANDLE).
hquery:set-buffers(BUFFER SSart1:HANDLE).
hquery:set-buffers(BUFFER tsartnmc2:HANDLE).

Qp = "FOR EACH Sart NO-LOCK"

qp = "FOR EACH Sart NO-LOCK"

+ ",EACH t_sartnmc OF Sart WHERE t_sartNmc.TypeNmc = 'MP'
AND t_sartNmc.IdNmc = STRING(6962) NO-LOCK"

+ ",EACH SSart1 of Sart NO-LOCK"

+ ",EACH tsartnmc2 OF Ssart1 WHERE
tsartNmc2.TypeNmc = 'C' NO-LOCK"

+ StockTri + " INDEXED-REPOSITION ".

hquery:QUERY-PREPARE(Qp). /* Error(7325) */
hbrowse:QUERY = hquery.
hquery:QUERY-OPEN().

....
 
Oh i see the problem, sorry for my neglect

instead of

Code:
hquery:set-buffers(BUFFER Sart:HANDLE). 
hquery:set-buffers(BUFFER t_sartnmc:HANDLE).
hquery:set-buffers(BUFFER SSart1:HANDLE).
hquery:set-buffers(BUFFER tsartnmc2:HANDLE).

try this
Code:
hquery:set-buffers(BUFFER Sart:HANDLE,
                          BUFFER t_sartnmc:HANDLE,
                          BUFFER SSart1:HANDLE,
                          BUFFER tsartnmc2:HANDLE).
 
Thanks :), it's work fine:) ,no error.

But the whole query display blanck record in the browse.
The first part work fine, the second part don't work.

qp = /* First Part */
"FOR EACH Sart NO-LOCK"

+ ",EACH t_sartnmc OF Sart WHERE t_sartNmc.TypeNmc = 'MP'
AND t_sartNmc.IdNmc = STRING(6962) NO-LOCK"

/* /*Second Part */
+ ",EACH SSart1 of Sart NO-LOCK"

+ ",EACH tsartnmc2 OF Ssart1 WHERE tsartNmc2.TypeNmc = 'C' NO-LOCK"
*/
+ StockTri + " INDEXED-REPOSITION ".
 
Back
Top