Randy
unread,Nov 13, 2025, 9:55:50 AM (10 days ago) Nov 13Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to harbou...@googlegroups.com
Hi all,
Can anyone help me with this question?
BACKGROUND:
ADS (and ALS) are limited to a max filter query string length of 32K.
HOWEVER, it seems that it is actually limited to a max of 32K PER
SEGMENT of the query string. For example...
"FIELD_A $ '<A 32K STRING HERE>' .OR. FIELD_B $ '<A 32K STRING HERE>'"
While the overall length of this is about 64K, it still seems to work.
That is, AdsIsExprValid() returns TRUE and AdsGetRecordCount() returns
the correct number of filtered records (it returns all records when the
filter is not handled by ADS so this indicates that ADS is managing the
filter properly).
The only thing that seems NOT to work is AdsGetAof() which truncates the
query string - HOWEVER, if you use DbSetFilter() to set the filter
(which uses AdsSetAof() internally in Harbour) then DbFilter() can be
used to get the entire query string.
QUESTION:
Is it safe to rely on this undocumented behavior where the query string
can be longer than 32K as long as each query "segment" is not more than 32K?
Thank you!
Randy.