Hi,

To do an automatic change to CHAR instead of BYTES, I see three ways to do
this.
1. Create an API-program that updated all character fields

Downsides: There may be a ARAPI-version problem that corrupts the
CharLimitsStruct if the API-program is of a different version

2. Export a def-file, manipulate the def file, reimport the def

Downsides: It will require a very big def for large applications, which
may not be good.

3. Do an SQL-update in the database and restart your AR Server.

Downsides: The change may not be propagated to the clients, as the
modify-date of the will not change. But that may not be necessary, as this
check is done on the server side. Also this is not really supported by
BMC.

Number 3 may after all be the best choise, as it should be very fast.

UPDATE field_char SET lengthUnits=1 WHERE lengthUnits=0

Maybe someone could comment on the possible risks, but I think they should
be quite low.

In my AR Server 7.6.04 I found three fields with lengthUnits=1 already:
Form/FieldId/FieldName
AR System Ignored Analyzer Results/20007/Object Parent
AR System Form Field Info/90009/Results List Meta Data
AR System Administration: Server Information/16799/atriumssoKeystore

Document your own lengthUnits=1 fields before you do the change:
SELECT schemaId,fieldId FROM field_char WHERE lengthUnits=1

        Best Regards - Misi, RRR AB, http://www.rrr.se

Products from RRR Scandinavia (Best R.O.I. Award at WWRUG10):
* RRR|License - Not enough Remedy licenses? Save money by optimizing.
* RRR|Log - Performance issues or elusive bugs? Analyze your Remedy logs.
Find these products, and many free tools and utilities, at http://rrr.se.

> Hi,
>
> I just saw something...
>
> You can change the "Length Unit" in the database properties of your field.
>
> The possible values are "Bytes" and "Characters".
>
> The default is "Bytes", but if you change this setting for all of your
> character fields, the old field length should be able to hold all your
> data even in utf8.
>
> According to the ar.h file, this functionality did not exist in version
> 7.0 or 7.1, but was introduced in 7.5.
>
> Here is an exerpt form the ARAPI ar.h-file from 7.6.03:
>
> typedef struct ARCharLimitsStruct
> {
>   unsigned int maxLength;   /* 0 for maxLength means unlimited length */
>   ...
>   unsigned int lengthUnits; /* 0 for in-byte, 1 for in-char */
>   ...
> }  ARCharLimitsStruct;
>
> This should be ideal for a small RRR-utility, if there is enough demand.
> Let me know that you would like a RRR|CharToBytes-utility!
>
> Or are there an easier way of doing this, such as a system wide default
> setting???
>
>         Best Regards - Misi, RRR AB, http://www.rrr.se
>
> Products from RRR Scandinavia (Best R.O.I. Award at WWRUG10):
> * RRR|License - Not enough Remedy licenses? Save money by optimizing.
> * RRR|Log - Performance issues or elusive bugs? Analyze your Remedy logs.
> Find these products, and many free tools and utilities, at http://rrr.se.
>
>> Hi,
>>
>> I have not tried this on Informix, but on Sybase, Oracle and MS-SQL.
>>
>> Remedy counts bytes, so the 255-byte character field will still be 255
>> bytes long.
>>
>> The problem is when you migrate your data, where a 255-character string
>> will not allways fit in 255-bytes. In 99% of the cases, the string will
>> probably fit, but you will have problems with some data.
>>
>> In this case you can choose to either truncate your data, or extend the
>> field length sligthly.
>>
>> If you go from cp-1257, I think that most of the characters above code
>> 127
>> will fit in two bytes. When I have converted Swedish systems, very few
>> records has needed more than 10% extra space.
>>
>> The strategy I have most commonly used, on custom applications, is the
>> following:
>> 1. Character fields > 128 characters or so, truncate the data in the
>> source database before transfer
>> 2. Character fields < 128 characters, extend the target field size by 1
>> byte when the merge-operation fails for certain records, and merge again
>>
>>         Best Regards - Misi, RRR AB, http://www.rrr.se
>>
>> Products from RRR Scandinavia (Best R.O.I. Award at WWRUG10):
>> * RRR|License - Not enough Remedy licenses? Save money by optimizing.
>> * RRR|Log - Performance issues or elusive bugs? Analyze your Remedy
>> logs.
>> Find these products, and many free tools and utilities, at
>> http://rrr.se.
>>
>>> Hi,
>>>
>>> I've got the question about Remedy (7.5) and Informix (utf8).
>>> We are going to migrate the workflow and data from Remedy 7.1 (Informix
>>> cp-1257) to Remedy 7.5 (Informix utf8).
>>> As far as I know the ARS 7.5 allows to set the Length Unit to
>>> Characters
>>> (not Bytes). What will happen with data if the Length Unit will be
>>> changed
>>> to Characters?
>>> For example, if the character field's lenght in ARS 7.1 was 255 and it
>>> was
>>> possible to include this field in the query's qualification, does it
>>> mean
>>> that the field's length in ARS 7.5 automatically will be 255*4 and the
>>> search will not be allowed without FTS?
>>>
>>> Best regards,
>>> Irina
>>>
>>> _______________________________________________________________________________
>>> UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
>>> attend wwrug11 www.wwrug.com ARSList: "Where the Answers Are"
>>>
>>
>> _______________________________________________________________________________
>> UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
>> attend wwrug11 www.wwrug.com ARSList: "Where the Answers Are"
>>
>
> _______________________________________________________________________________
> UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
> attend wwrug11 www.wwrug.com ARSList: "Where the Answers Are"
>

_______________________________________________________________________________
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
attend wwrug11 www.wwrug.com ARSList: "Where the Answers Are"

Reply via email to