We have a report writer that allows users to select the client they want to
print any report for. This subroutine builds a list of clients available to
any particular user and uses this list to either compare against the clients
entered or of all clients are selected then the entire list is used. When
this list is placed in an ECL query and executed, e.g....
SELECT CUSTOMERS WITH CLIENTNO = "1""2""3""4".....
...all has been fine for years. We picked up a new customer who has over
300 clients. When a user tries to run a report for all clients accessible
by them the query aborts with...
WITH condition stack overflow
A quick look at "LIMIT" shows:
:LIMIT
U_MAXFNAME: File name limit = 198.
U_NAMESZ: Record id(key) size = 126.
U_SELEMAX: Number of select list = 10.
U_MAXDATA: Number of DATA statement = 500.
U_HEADSZ: HEADER/FOOTER length = 2120.
U_MAXHASHTYPES: Number of hash functions = 3.
U_MAXSORT: Number of sort fields(BY...) in LIST = 20.
U_MAXWITH: WITH stack size = 256.
U_MAXWHEN: WHEN stack size = 60.
U_MAXCAL: Number of SUM+AVG+PCT+CAL in LIST = 54.
U_MAXBREAK: Number of BREAK.ON+BREAK.SUP in LIST = 15.
U_MAXLIST: Number of attribute names in LIST = 999.
U_LINESZ: Page width in printing = 272.
U_PARASIZE: Paragraph name and its parameter size = 256.
U_LPCMD: System spooler name = NT Spooler.
U_MAXPROMPT: Number of prompts allowed in paragraph = 60.
U_FSIZE: Dictionary field name size = 31.
U_MAXVALUE: Number of values WHEN can handle = 10240.
U_MAXBYEXPVAL: Number of values BY.EXP can handle = 10240.
U_SENTLEN: Maximum sentence length = 9247.
U_PROCBUFSZ: Proc buffer size = 8191.
U_NIDES: Maximum number of virtual fields in query= 256
...which indicates there's a limit of data allowed in the "WITH" clause(s)
of 256. The UniData documentation says these parameters are __NOT__
configurable. How in the world are other people overcoming this
limitation? Doesn't anyone want data for more than 256 somethings? Is it
possible for me to overcome this limitation without going into 1,000
programs to split large numbers of ECL queries? Or am I forced to count the
"somethings" available to submit to any query and abort if its more than
250? Am I forced to split up A/P check runs (and many other processes) into
two or more runs to accommodate this limitation?
Any experience, or thoughts, on this will be appreciated.
Bill
-------
u2-users mailing list
[email protected]
To unsubscribe please visit http://listserver.u2ug.org/