Index: nmake.opt =================================================================== --- nmake.opt (revision 16542) +++ nmake.opt (working copy) @@ -39,7 +39,7 @@ # But the paths *should* be absolute (relative paths mess up in submakefiles). !IFNDEF GDAL_HOME -GDAL_HOME = "C:\warmerda\bld" +GDAL_HOME = C:\Users\Anders\Documents\src32\gdal !ENDIF BINDIR = $(GDAL_HOME)\bin PLUGINDIR = $(BINDIR)\gdalplugins @@ -193,12 +193,12 @@ #ILI_ENABLED = YES # Uncomment for JasPer based JPEG2000 support -#JASPER_DIR = d:\projects\jasper-1.700.2.uuid -#JASPER_INCLUDE = -I$(JASPER_DIR)\src\libjasper\include -DJAS_WIN_MSVC_BUILD -#JASPER_LIB = $(JASPER_DIR)\src\msvc\Win32_Release\libjasper.lib +JASPER_DIR = C:\Users\Anders\Documents\src32\jasper-1.900.1.uuid +JASPER_INCLUDE = -I$(JASPER_DIR)\src\libjasper\include -DJAS_WIN_MSVC_BUILD +JASPER_LIB = $(JASPER_DIR)\src\msvc\Win32_Release\libjasper.lib # Uncomment the following line if you have patched UUID-enabled version # of JasPer from ftp://ftp.remotesensing.org/gdal/ -#JASPER_INCLUDE = $(JASPER_INCLUDE) -DHAVE_JASPER_UUID +JASPER_INCLUDE = $(JASPER_INCLUDE) -DHAVE_JASPER_UUID # Uncommment if you have Kakadu 4.0 or newer #KAKDIR = D:\warmerda\jp2\kakadu @@ -238,13 +238,17 @@ # MySQL Libraries # NOTE: Need /MT instead of /MD, also enable /EHsc switch. +MYSQL_INC_DIR = C:\Users\Anders\Documents\mysql-qt\include +MYSQL_LIB = C:\Users\Anders\Documents\mysql-qt\lib\opt\libmysql.lib advapi32.lib + #MYSQL_INC_DIR = D:\Software\MySQLServer4.1\include #MYSQL_LIB = D:\Software\MySQLServer4.1\lib\opt\libmysql.lib advapi32.lib # SQLite Libraries -#SQLITE_INC=-IN:\pkg\sqlite-win32 -#SQLITE_LIB=N:\pkg\sqlite-win32\sqlite3_i.lib +SQLITE_INC=-IN:C:\Users\Anders\Documents\src32\sqlite-amalgamation-3_6_11\ +SQLITE_LIB=C:\Users\Anders\Documents\src32\sqlite-amalgamation-3_6_11\sqlite.lib + # Informix Data Blade #INFORMIXDIR="C:\Program Files\IBM\Informix\Client-SDK" #IDB_INC=-I$(INFORMIXDIR)\incl\cpp -I$(INFORMIXDIR)\incl\dmi \ @@ -264,6 +268,11 @@ GRIB_SETTING=yes # Uncomment the following to enable NetCDF format. +NETCDF_PLUGIN = NO +NETCDF_SETTING=yes +NETCDF_LIB=C:\Users\Anders\Documents\src32\VTK\bin\Release\vtkNetCDF.lib +NETCDF_INC_DIR=C:\Users\Anders\Documents\src32\VTK\Utilities\vtknetcdf + #NETCDF_PLUGIN = NO #NETCDF_SETTING=yes #NETCDF_LIB=C:\Software\netcdf\lib\netcdf.lib @@ -287,6 +296,13 @@ OCI_INCLUDE = -I$(ORACLE_HOME)\oci\include !ENDIF +SDE_ENABLED = YES +SDE_VERSION=93 +SDE_PLUGIN = NO +SDE_SDK = C:\ArcGIS\ArcSDE +SDE_INC = $(SDE_SDK)\include +SDE_LIB = $(SDE_SDK)\lib\pe.lib $(SDE_SDK)\lib\sde.lib $(SDE_SDK)\lib\sg.lib + #SDE_ENABLED = YES #SDE_VERSION=91 #SDE_PLUGIN = NO @@ -297,19 +313,23 @@ # Uncomment to use libcurl (DLL by default) # The cURL library is used for WCS, WMS, GeoJSON, SRS call importFromUrl(), etc. -#CURL_DIR=C:\curl-7.15.0 -#CURL_INC = -I$(CURL_DIR)/include +CURL_DIR=C:\Users\Anders\Documents\src32\libcurl-7.19.3-win32-ssl-msvc +CURL_INC = -I$(CURL_DIR)/include # Uncoment following line to use libcurl as dynamic library #CURL_LIB = $(CURL_DIR)/libcurl_imp.lib wsock32.lib wldap32.lib winmm.lib # Uncoment following two lines to use libcurl as static library -#CURL_LIB = $(CURL_DIR)/libcurl.lib wsock32.lib wldap32.lib winmm.lib -#CURL_CFLAGS = -DCURL_STATICLIB +CURL_LIB = C:\Users\Anders\Documents\src32\libcurl-7.19.3-win32-ssl-msvc\libcurl_imp.lib wsock32.lib wldap32.lib winmm.lib +CURL_CFLAGS = -DCURL_STATICLIB # Uncomment for DODS / OPeNDAP support #DODS_DIR = C:\libdap3.6.2 #DODS_LIB = $(DODSDIR)\lib\libdapMD.lib # Uncomment for GEOS support +GEOS_DIR=C:\Users\Anders\Documents\src32\geos-svn +GEOS_CFLAGS = -I$(GEOS_DIR)/capi -I$(GEOS_DIR)/source/headers -DHAVE_GEOS +GEOS_LIB = $(GEOS_DIR)/source/geos_c_i.lib + #GEOS_DIR=C:/warmerda/geos #GEOS_CFLAGS = -I$(GEOS_DIR)/capi -I$(GEOS_DIR)/source/headers -DHAVE_GEOS #GEOS_LIB = $(GEOS_DIR)/source/geos_c_i.lib Index: ogr/ogrsf_frmts/sde/ogrsdelayer.cpp =================================================================== --- ogr/ogrsf_frmts/sde/ogrsdelayer.cpp (revision 16542) +++ ogr/ogrsf_frmts/sde/ogrsdelayer.cpp (working copy) @@ -33,6 +33,8 @@ #include "cpl_conv.h" #include "cpl_string.h" +#define SE_NSTRING_TYPE + CPL_CVSID("$Id$"); /************************************************************************/ @@ -221,7 +223,8 @@ #ifdef SE_NSTRING_TYPE case SE_NSTRING_TYPE: - eOGRType = OFTWideString; + //eOGRType = OFTWideString; + eOGRType = OFTString; nWidth = asColumnDefs[iCol].size; break; #endif @@ -920,7 +923,7 @@ // Set attribute columns for( i=0; i < nAttributeCols; i++ ) { - int iFieldDefnIdx = paiColToDefMap[i]; + int iFieldDefnIdx = paiColToDefMap[i]; OGRFieldDefn *poFieldDefn; OGRField *poField; @@ -972,6 +975,26 @@ return OGRERR_FAILURE; } } + + else if( poFieldDefn->GetType() == OFTWideString ) + { + const int nstring_size = strlen (poField->String ); + SE_WCHAR * pszTempStringUTF16 = (SE_WCHAR * ) CPLMalloc (nstring_size * sizeof(SE_WCHAR )); + char* utf16_string = CPLRecode(poField->String, CPL_ENC_UTF8, CPL_ENC_UTF16 ); + + + nSDEErr = SE_stream_set_nstring( hStream, iCurColNum++, + pszTempStringUTF16 ); + if( nSDEErr != SE_SUCCESS ) + { + poDS->IssueSDEError( nSDEErr, "SE_stream_set_nstring" ); + CSLDestroy( papszInsertCols ); + CPLFree( paiColToDefMap ); + CPLFree (pszTempStringUTF16); + CPLFree (utf16_string); + return OGRERR_FAILURE; + } + } else if( poFieldDefn->GetType() == OFTDate || poFieldDefn->GetType() == OFTDateTime ) @@ -1789,6 +1812,33 @@ break; + case SE_NSTRING_TYPE: + { + const int nstring_size = SE_QUALIFIED_COLUMN_LEN; + SE_WCHAR * pszTempStringUTF16 = (SE_WCHAR * ) CPLMalloc (nstring_size * sizeof(SE_WCHAR )); + + nSDEErr = SE_stream_get_nstring( hStream, anFieldMap[i]+1, pszTempStringUTF16 ); + + if( nSDEErr == SE_SUCCESS ) { + + char* utf8_string = CPLRecodeFromWChar((const wchar_t*)pszTempStringUTF16, CPL_ENC_UTF16, CPL_ENC_UTF8); + poFeat->SetField( i, utf8_string); + CPLFree (utf8_string); + + } else if( nSDEErr != SE_NULL_VALUE ) + { + poDS->IssueSDEError( nSDEErr, "SE_stream_get_nstring" ); + CPLFree( pszTempStringUTF16); + + return NULL; + } + CPLFree( pszTempStringUTF16); + } + + + break; + + #ifdef SE_UUID_TYPE case SE_UUID_TYPE: {