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.
This commit is contained in:
Mindaugas Kavaliauskas
2010-11-19 13:23:06 +00:00
parent 8ae2d0e27f
commit 880f9e77ef
2 changed files with 14 additions and 1 deletions

View File

@@ -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

View File

@@ -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 );