From 5b4cb6058a06d7cf3403568fcbd12072796387df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20Czerpak?= Date: Thu, 21 Jan 2016 20:29:25 +0100 Subject: [PATCH] 2016-01-21 20:29 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) * contrib/rddads/ads1.c * do not use long type names in array returned by dbStruct() if corresponding types exist in core code and have their own name recognized by other RDDs. Now only one long type name can be returned: "CICHARACTER" --- ChangeLog.txt | 7 +++++++ contrib/rddads/ads1.c | 38 ++++++-------------------------------- 2 files changed, 13 insertions(+), 32 deletions(-) diff --git a/ChangeLog.txt b/ChangeLog.txt index d187b4288b..4beab6b032 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -10,6 +10,13 @@ * Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment */ +2016-01-21 20:29 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) + * contrib/rddads/ads1.c + * do not use long type names in array returned by dbStruct() if + corresponding types exist in core code and have their own name + recognized by other RDDs. + Now only one long type name can be returned: "CICHARACTER" + 2016-01-19 13:03 UTC+0100 Maurilio Longo (maurilio.longo@libero.it) - tests/longfile.prg + tests/largefil.prg diff --git a/contrib/rddads/ads1.c b/contrib/rddads/ads1.c index 3efd0a4246..2fef9e4c6b 100644 --- a/contrib/rddads/ads1.c +++ b/contrib/rddads/ads1.c @@ -2065,46 +2065,19 @@ static HB_ERRCODE adsFieldInfo( ADSAREAP pArea, HB_USHORT uiIndex, HB_USHORT uiT hb_itemPutL( pItem, u16Null != 0 ); break; } - +#if ADS_LIB_VERSION >= 710 case DBS_TYPE: { LPFIELD pField = pArea->area.lpFields + uiIndex - 1; - const char * szType = NULL; - switch( pField->uiType ) + if( pField->uiTypeExtended == ADS_CISTRING ) { - case HB_FT_STRING: - if( pField->uiFlags & HB_FF_BINARY ) - szType = "RAW"; - else if( pField->uiFlags & HB_FF_UNICODE ) - szType = "NCHAR"; -#if ADS_LIB_VERSION >= 710 - else if( pField->uiTypeExtended == ADS_CISTRING ) - szType = "CICHARACTER"; -#endif - break; - - case HB_FT_VARLENGTH: - if( pField->uiFlags & HB_FF_BINARY ) - szType = "VARBINARY"; - else if( pField->uiFlags & HB_FF_UNICODE ) - szType = "NVARCHAR"; - else - szType = "VARCHAR"; - break; - - case HB_FT_MEMO: - if( pField->uiFlags & HB_FF_UNICODE ) - szType = "NMEMO"; - break; - } - if( szType != NULL ) - { - hb_itemPutC( pItem, szType ); + hb_itemPutC( pItem, "CICHARACTER" ); break; } /* no break */ } +#endif default: return SUPER_FIELDINFO( &pArea->area, uiIndex, uiType, pItem ); } @@ -3031,7 +3004,8 @@ static HB_ERRCODE adsCreate( ADSAREAP pArea, LPDBOPENINFO pCreateInfo ) switch( pField->uiType ) { case HB_FT_STRING: - if( pField->uiTypeExtended == ADS_RAW ) + if( pField->uiFlags & HB_FF_BINARY || + pField->uiTypeExtended == ADS_RAW ) cType = "Raw"; else if( pField->uiFlags & HB_FF_UNICODE ) {