From 880f9e77efd720dfa32fddcad8fd22e9a94b0e96 Mon Sep 17 00:00:00 2001 From: Mindaugas Kavaliauskas Date: Fri, 19 Nov 2010 13:23:06 +0000 Subject: [PATCH] 2010-11-19 15:20 UTC+0200 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt) * harbour/contrib/rddads/ads1.c ! fixed varchar support for windows introduced in one of last commits ; Varchar is not working, if ADS is set to use "OEM charset support", because AdsGetFieldRaw() returns raw field data and maximum field length value is always returned. ADS_USE_OEM_TRANSLATION is actually ugly hack to solve some DOS/WIN codepage issues. I'm not sure what was the reason to introduce it. Sharing the same database between DOS and Windows app or what?... It would be nice if someone who need this setting will test and support logic in case of variable string, binary string, unicode string. --- harbour/ChangeLog | 13 +++++++++++++ harbour/contrib/rddads/ads1.c | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index fe74ba39d9..d741e56c98 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,19 @@ The license applies to all entries newer than 2009-04-28. */ +2010-11-19 15:20 UTC+0200 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt) + * harbour/contrib/rddads/ads1.c + ! fixed varchar support for windows introduced in one of last commits + ; Varchar is not working, if ADS is set to use "OEM charset support", + because AdsGetFieldRaw() returns raw field data and maximum field + length value is always returned. + ADS_USE_OEM_TRANSLATION is actually ugly hack to solve some DOS/WIN + codepage issues. I'm not sure what was the reason to introduce it. + Sharing the same database between DOS and Windows app or what?... + It would be nice if someone who need this setting will test and + support logic in case of variable string, binary string, unicode + string. + 2010-11-19 12:38 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbdefs.h * harbour/src/rdd/dbfntx/dbfntx1.c diff --git a/harbour/contrib/rddads/ads1.c b/harbour/contrib/rddads/ads1.c index 2d79c7c140..cc782513ab 100644 --- a/harbour/contrib/rddads/ads1.c +++ b/harbour/contrib/rddads/ads1.c @@ -2165,7 +2165,7 @@ static HB_ERRCODE adsGetValue( ADSAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pItem } #endif #ifdef ADS_USE_OEM_TRANSLATION - else if( ( pField->uiFlags & HB_FF_BINARY ) == 0 ) + else if( hb_ads_bOEM && ( pField->uiFlags & HB_FF_BINARY ) == 0 ) { #if ADS_LIB_VERSION >= 600 u32RetVal = AdsGetFieldRaw( pArea->hTable, ADSFIELD( uiIndex ), pBuffer, &u32Length );