Default maximal length for VarChar Re: VChar vs VText

Ed Kleban Ed at Kleban.com
Wed Dec 7 23:56:42 CST 2005




On 12/7/05 11:41 PM, "Ed Kleban" <Ed at Kleban.com> wrote:

> 
> 
> 
> On 11/28/05 5:59 AM, "Ruslan Zasukhin" <sunshine at public.kherson.ua> wrote:
> 
>> On 11/28/05 3:57 AM, "Ed Kleban" <Ed at Kleban.com> wrote:
>> 
>>>> Actually in v2 for UTF8 the best size of VarChar will be 2044.
>>>> 
>>> 
>>> Why?  Does this have to do with the natural page size of MacOS X or
>>> something?  
>> 
>> Yes. Best size of page is 4K
>> 
>> We assume that page should keep at least 2 records.
>> 
>> So max size *in bytes* for one record is (4K - header) / 2 = 2044
>>   
> 
> Ok,... but If I recall correctly, UTF8 does not work yet in V4RB 2.xx
> correct?   
> 
> Is this true?  What bad things happen if I set db.StorageEncoding = UTF-8
> (whatever the correct syntax for that is)?
> 
> If I must use UTF16 as my StorageEncoding, however I plan to use just simple
> ASCII 8-bit character strings in RB, then presumably I should declare my
> VarChar fields as VarChar( 1022 ) even though the test I am using in RB to
> determine if a string will fit is "LenB( aString ) <= 2044"
> 
> Is this correct?
> 
> Will Valentina be able to store strings in UTF-8 in the future?
> 
> Thanks!
> --Ed 

Actually, I think I got that backwards.  Also if the size *in bytes* for one
record is 2044, and 4 bytes of the record are required for string size, then
I guess I should declare:
    VarChar( 2020 )
and do a check in RB for:
    "LenB( aString ) <= 1010"
Correct?





More information about the Valentina mailing list