At 07:21 AM 1/07/2009, Sam Carleton wrote:
>I am getting an exception from Firebird 2.0.1 which I don't know how
>to interpret.  Any and all help is welcome:
>
>--------------------------------------------------
>invalid request BLR at offset 83
>Implementation limit exceeded
>block size exceeds implementation restriction
>---------------------------------------------------

It's an exception coming from the Firebird engine.  The third line provides the 
clue to which implementation limit you have hit.  It indicates that your SQL 
string (including the maximum defined size of any parameters you are passing 
plus full resolution of column names specified as SELECT *) is longer than the 
implementation limit of 64 KB when the engine converts it to the binary 
language representation (BLR), which is also a byte-encoded string format.  On 
the whole, counting the bytes in the run-time statement is a fair guideline to 
the size of the blr. 

A common cause of this error is defining huge CHAR or VARCHAR parameters.  For 
example, if you pass more than one 32KB text string, you will hit the limit 
unconditionally.  There are other likely causes, of course, especially if you 
are using a tool to generate statements involving many tables, since many such 
tools do not use aliasing in multi-table queries.  Databases defined with 
relation and/or  column identifiers using a high number of bytes will 
contribute a lot of bytes to a query.

AFAIR, the same exception is thrown if the execution plan is longer than 48 KB; 
 or if the all-up run-time length of the PSQL block inside an EXECUTE BLOCK 
expression exceeds 48KB.

Don't count characters, count bytes.  UTF-8, for example, has 3 bytes per 
character.

Helen


------------------------------------------------------------------------------
_______________________________________________
Firebird-net-provider mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/firebird-net-provider

Reply via email to