V4CC - VVarchar constructors faulty
Erne
ernestogiannotta at tiscalinet.it
Tue Jan 5 03:33:34 CST 2010
Il giorno 04/gen/10, alle ore 19:39, Ruslan Zasukhin ha scritto:
> On 1/4/10 7:30 PM, "Ruslan Zasukhin" <ruslan_zasukhin at valentina-
> db.com>
> wrote:
>
>> On 1/3/10 10:42 PM, "Ernesto Giannotta"
>> <ernestogiannotta at tiscalinet.it>
>> wrote:
>>
>> Hi Erne,
>>
>>> from the V4CC_VarChar.h:
>>>
>>> @interface VVarChar : VString
>>> {
>>> }
>>>
>>> -(id) initWithName:(NSString*)inName maxLength:(int)inLen flags:
>>> (int) inFlags
>>> method:(NSString*)inMethod;
>>> -(id) initWithName:(NSString*)inName length:(int)inLen flags:(int)
>>> inFlags;
>>> -(id) initWithName:(NSString*)inName length:(int)inLen;
>>> -(id) initWithName:(NSString*)inName;
>>>
>>> but only first constructor returns a valid Varchar field, the
>>> others generate
>>> a Vstring object with unpredictable results (banged my head on it
>>> all day
>>> long!)
>>>
>>> So better remove them from header or make them work as expected ;-)
>>>
>>> I'll Mantis this right away.
>>
>> This is sources of VarChar class in V4CC
>>
>> By idea, second, third, forth constructors should call the first one.
>>
>> But you say they create VStrng class ...
>> may be in fact is called PARENT ctor ... But why
>
> I have found why :)
>
> Because first VarChar ctor have maxLength:
> But rest and Vstring class has this param named length:
>
> FIXED.
>
Happy to hear that! :-)
About naming what have you decided?
Keep 'length' or put 'maxLength' in all ctors?
(I'd vote for 'maxLength')
>
>> /
>> *********************************************************************
>> ******
>> *******************/
>> @interface VVarChar : VString
>> {
>> }
>>
>> -(id) initWithName:(NSString*)inName maxLength:(int)inLen flags:(int)
>> inFlags method:(NSString*)inMethod;
>> -(id) initWithName:(NSString*)inName length:(int)inLen flags:(int)
>> inFlags;
>> -(id) initWithName:(NSString*)inName length:(int)inLen;
>> -(id) initWithName:(NSString*)inName;
>>
>>
>> /
>> *********************************************************************
>> ******
>> *******************/
>> @end // @interface VVarChar
>>
>>
>> /
>> *********************************************************************
>> ******
>> *******************/
>> @implementation VVarChar
>>
>> /
>> *********************************************************************
>> ******
>> *******************/
>> -(id) initWithName:(NSString*)inName maxLength:(int)inLen flags:(int)
>> inFlags method:(NSString*)inMethod
>> {
>> self = [super init];
>> if( self )
>> {
>> START( "VarChar_Ctor" );
>> LOG_PARAM( self );
>> LOG_PARAM( inName );
>> LOG_PARAM( inLen );
>> LOG_PARAM( inFlags );
>> LOG_PARAM( inMethod );
>>
>> try
>> {
>> if( gTable )
>> {
>> // fucking RB have create BLOB class already, so
>> data->mpField = NULL;
>>
>> Str_Unicode u_name( inName );
>> Str_Unicode u_method( inMethod );
>>
>> I_Field_Ptr pField = CreateVarCharField(
>> gTable, u_name.c_str(), inLen, ushort(inFlags),
>> u_method.c_str() );
>>
>> Field_SetInstance( self, data, pField );
>> }
>>
>> }MY_END_TRY
>> }
>>
>> RETURN( self );
>> }
>>
>>
>> /
>> *********************************************************************
>> ******
>> *******************/
>> -(id)initWithName:(NSString*)inName length:(int)inLen flags:(int)
>> inFlags
>> {
>> return [self initWithName:inName length:inLen flags:inFlags
>> method:nil];
>> }
>>
>> /
>> *********************************************************************
>> ******
>> *******************/
>> -(id)initWithName:(NSString*)inName length:(int)inLen
>> {
>> return [self initWithName:inName length:inLen flags:fNone
>> method:nil];
>> }
>>
>> /
>> *********************************************************************
>> ******
>> *******************/
>> -(id)initWithName:(NSString*)inName
>> {
>> return [self initWithName:inName length:20 flags:fNone
>> method:nil];
>> }
>>
>> /
>> *********************************************************************
>> ******
>> *******************/
>> @end // @implementation VVarChar
>>
>>
>>
>> _______________________________________________
>> Valentina mailing list
>> Valentina at lists.macserve.net
>> http://lists.macserve.net/mailman/listinfo/valentina
>
> --
> Best regards,
>
> Ruslan Zasukhin
> VP Engineering and New Technology
> Paradigma Software, Inc
>
> Valentina - Joining Worlds of Information
> http://www.paradigmasoft.com
>
> [I feel the need: the need for speed]
>
>
> _______________________________________________
> Valentina mailing list
> Valentina at lists.macserve.net
> http://lists.macserve.net/mailman/listinfo/valentina
Cool Runnings,
Erne.
More information about the Valentina
mailing list