query-prepare

Mkontwg

Member
Hi team

Can some one help me with my query-prepare statement to handle temp table.
QUERY f:QUERY-PREPARE ("for each psbrnc").

This on my ui form display all the records from the table. I need to display only record that begins with 'bp'

I did the following on my QUERY f:QUERY-PREPARE ("for each psbrnc where pb-partno eq 'bp'"). I'm getting an error, please help me with my query statement.
 

Cringer

ProgressTalk.com Moderator
Staff member
I suspect you haven't added the temp table buffer to your buffers list in the query handle. But that's just speculation unless you post code and the error message.
 

Mkontwg

Member
Hi

I did, this my procedure below my here was to display table record 'pb-partno' with 70 branch part no using where clause;

Code:
DEFINE TEMP-TABLE  tt NO-UNDO
FIELD sys-cono AS CHARACTER
FIELD pb-partno AS CHARACTER
FIELD pb-acost AS CHARACTER
FIELD pb-onhand AS CHARACTER.
DEFINE QUERY fv FOR psbrnc SCROLLING.
DEFINE DATA-SOURCE ld FOR QUERY fv.
DEFINE DATASET df FOR tt.

PROCEDURE getServData:
    DEFINE OUTPUT PARAMETER DATASET-HANDLE nDataSet.
   
    QUERY fv:QUERY-PREPARE ("for each psbrnc").
    BUFFER tt:FILL-MODE = "EMPTY".
    BUFFER tt:ATTACH-DATA-SOURCE (DATA-SOURCE ld:HANDLE).
    DATASET df:FILL ().
    BUFFER tt:DETACH-DATA-SOURCE ().
    nDataSet = DATASET df:HANDLE.
   
END PROCEDURE.

Error message "pb-partno must be quoted constant or an unabbreviated, unambiguous buffer/field reference for buffers known to query fv"
 
Last edited by a moderator:

Mkontwg

Member
Hi

I did, this my procedure below my here was to display table record 'pb-partno' with 70 branch part no using where clause;

DEFINE TEMP-TABLE tt NO-UNDO
FIELD sys-cono AS CHARACTER
FIELD pb-partno AS CHARACTER
FIELD pb-acost AS CHARACTER
FIELD pb-onhand AS CHARACTER.
DEFINE QUERY fv FOR psbrnc SCROLLING.
DEFINE DATA-SOURCE ld FOR QUERY fv.
DEFINE DATASET df FOR tt.

PROCEDURE getServData:
DEFINE OUTPUT PARAMETER DATASET-HANDLE nDataSet.

QUERY fv:QUERY-PREPARE ("for each psbrnc where pb-partno eq 'bp'").
BUFFER tt:FILL-MODE = "EMPTY".
BUFFER tt:ATTACH-DATA-SOURCE (DATA-SOURCE ld:HANDLE).
DATASET df:FILL ().
BUFFER tt:DETACH-DATA-SOURCE ().
nDataSet = DATASET df:HANDLE.

END PROCEDURE.

Error message "pb-partno must be quoted constant or an unabbreviated, unambiguous buffer/field reference for buffers known to query fv"
 

Osborne

Active Member
It seems to suggest that the field pb-partno does not exist for the table psbrnc.

If you prefix the table does that work?:
Code:
QUERY f:QUERY-PREPARE ("for each psbrnc where psbrnc.pb-partno eq 'bp'").
 
Top