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
