Subject Re: [ib-support] Firbird 1 Release Version
Author Pirtea Calin
From: "Raf Schandevyl"
>Now I found it has nothing to do with the blob I was returning but with
>concatination off 2 varchars.

>Try creating this procedure. You'll get the error.

>CREATE PROCEDURE TEST$VARCHAR
>AS
> DECLARE VARIABLE varTest1 VARCHAR(20000);
> DECLARE VARIABLE varTest2 VARCHAR(32000);
>BEGIN
> /* Procedure body */
> varTest2 = 'Test';
> varTest1 = 'Concatinated';
> varTest2 = varTest2 || varTest1;
> SUSPEND;
>END


The problem is that when concatenating it checks only to see if the summ of
those two types sizes are beyond 32764
It has only to do with varchar concatenation.

I tried this
select cast('test' as varchar(20000))||cast('concatenated' as
varchar(12764)) from rdb$database
--Implementation limit exceeded
--block size exceeds implementation restriction

and it doesn't work, while this works ok
select cast('test' as varchar(20000))||cast('concatenated' as
varchar(12763)) from rdb$database

(I think it should allow 32765 instead of 32763)


also when :
select cast('test' as varchar(32765)) from rdb$database
it works ok while:
select cast('test' as varchar(32766)) from rdb$database
--Dynamic SQL Error
--SQL error code = -204
--Data type unknown
--Implementation limit exceeded
--COLUMN DSQL internal
doesn't, but i think this is how it should work.


Best regards,
Aplication Developer
Pirtea Calin Iancu
S.C. SoftScape S.R.L.
pcalin@...