Subject Re: [firebird-support] Facing Problem with limitations of IN CLAUSE
Author Helen Borrie
At 03:47 AM 9/03/2006, you wrote:

>As per my knowledge I know that IN CLAUSE have limitations of only 1499
>elements. (firebird v2.0)
>
>I have one query where IN CLAUSE elements exceeds above 4000 therefore
>firebird gives error...

[..]

>SO, Is there any way to overcome this limitations with out creating any
>TEMP TABLE

Can you not store the picked values into some kind of sortable hash
list (like a TStringlist in Delphi) that you can process into ranges,
before assembling a where clause like

where blah between :r1 and :r2
or blah between :r3 and :r4
or blah between :r5 and :r6
or blah between ...

Note that the parameter syntax here is Delphi syntax, used just
because Delphi names parameters locally, so it's an easy way to
illustrate the concept. If your data access interface doesn't have a
way to label parameters with local identifiers, you'd probably need
to inject another hash table into the picture so that you have a
reference to the start and end values in the right order of
occurrence in the where clause.

./heLen