Subject | Re: [firebird-support] Facing Problem with limitations of IN CLAUSE |
---|---|
Author | Helen Borrie |
Post date | 2006-03-08T22:42:23Z |
At 03:47 AM 9/03/2006, you wrote:
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
>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 anyCan you not store the picked values into some kind of sortable hash
>TEMP TABLE
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