Make sure that the psqlodbc ANSI driver is ODBC3.5.
authorHiroshi Inoue <inoue@tpf.co.jp>
Sun, 1 Jun 2014 04:02:10 +0000 (13:02 +0900)
committerHiroshi Inoue <inoue@tpf.co.jp>
Fri, 13 Jun 2014 04:00:20 +0000 (09:45 +0545)
installer/psqlodbcm_cpu.wxs
setup.c
win64.mak

index 7ed7ab079a4fe357c159b9651343d8d6fe4560fb..aed8508f0a57c816a14ca2ef93cb85d82a3e6914 100644 (file)
           <RegistryValue Id="psqlodbc30a.reg.2" Root="HKLM" Key="SOFTWARE\ODBC\ODBCINST.INI\PostgreSQL ANSI" Name="APILevel" Type="string" Value="1" />
           <RegistryValue Id="psqlodbc30a.reg.3" Root="HKLM" Key="SOFTWARE\ODBC\ODBCINST.INI\PostgreSQL ANSI" Name="ConnectFunctions" Type="string" Value="YYN" />
           <RegistryValue Id="psqlodbc30a.reg.4" Root="HKLM" Key="SOFTWARE\ODBC\ODBCINST.INI\PostgreSQL ANSI" Name="Driver" Type="string" Value="[#psqlodbc30a.dll]" />
-          <RegistryValue Id="psqlodbc30a.reg.5" Root="HKLM" Key="SOFTWARE\ODBC\ODBCINST.INI\PostgreSQL ANSI" Name="DriverODBCVer" Type="string" Value="03.00" />
+          <RegistryValue Id="psqlodbc30a.reg.5" Root="HKLM" Key="SOFTWARE\ODBC\ODBCINST.INI\PostgreSQL ANSI" Name="DriverODBCVer" Type="string" Value="03.50" />
           <RegistryValue Id="psqlodbc30a.reg.6" Root="HKLM" Key="SOFTWARE\ODBC\ODBCINST.INI\PostgreSQL ANSI" Name="FileUsage" Type="string" Value="0" />
           <RegistryValue Id="psqlodbc30a.reg.7" Root="HKLM" Key="SOFTWARE\ODBC\ODBCINST.INI\PostgreSQL ANSI" Name="Setup" Type="string" Value="[#psqlodbc30a.dll]" />
           <RegistryValue Id="psqlodbc30a.reg.8" Root="HKLM" Key="SOFTWARE\ODBC\ODBCINST.INI\PostgreSQL ANSI" Name="SQLLevel" Type="string" Value="1" />
diff --git a/setup.c b/setup.c
index 408f0e8d8e427e6a1767a77ea9ca38eca2f57d9e..0956bd2d23de2c27d598a3fa10bb7c2fc6df8d8b 100644 (file)
--- a/setup.c
+++ b/setup.c
@@ -582,6 +582,7 @@ static BOOL
 SetDriverAttributes(LPCSTR lpszDriver, DWORD *pErrorCode, LPSTR message, WORD cbMessage)
 {
    BOOL    ret = FALSE;
+   char ver_string[8];
 
    /* Validate arguments */
    if (!lpszDriver || !lpszDriver[0])
@@ -596,12 +597,11 @@ SetDriverAttributes(LPCSTR lpszDriver, DWORD *pErrorCode, LPSTR message, WORD cb
        goto cleanup;
    if (!SQLWritePrivateProfileString(lpszDriver, "ConnectFunctions", "YYN", ODBCINST_INI))
        goto cleanup;
+   snprintf(ver_string, sizeof(ver_string), "%02x.%02x",
+                ODBCVER / 256,
+                ODBCVER % 256);
    if (!SQLWritePrivateProfileString(lpszDriver, "DriverODBCVer",
-#ifdef UNICODE_SUPPORT
-        "03.51",
-#else
-        "03.00",
-#endif
+       ver_string,
        ODBCINST_INI))
        goto cleanup;
    if (!SQLWritePrivateProfileString(lpszDriver, "FileUsage", "0", ODBCINST_INI))
index 13f1b1b4cde278de2ebac569b423d8819bb84d1b..92391e78d6620dcf1f70bdd73bb6de3ee0a6a471 100755 (executable)
--- a/win64.mak
+++ b/win64.mak
@@ -125,7 +125,7 @@ ADD_DEFINES = $(ADD_DEFINES) /D "_HANDLE_ENLIST_IN_DTC_"
 ADD_DEFINES = $(ADD_DEFINES) /D "_MEMORY_DEBUG_" /GS
 !ENDIF
 !IF "$(ANSI_VERSION)" == "yes"
-ADD_DEFINES = $(ADD_DEFINES) /D "DBMS_NAME=\"PostgreSQL ANSI($(TARGET_CPU))\"" /D "ODBCVER=0x0300"
+ADD_DEFINES = $(ADD_DEFINES) /D "DBMS_NAME=\"PostgreSQL ANSI($(TARGET_CPU))\"" /D "ODBCVER=0x0350"
 !ELSE
 ADD_DEFINES = $(ADD_DEFINES) /D "DBMS_NAME=\"PostgreSQL Unicode($(TARGET_CPU))\"" /D "ODBCVER=0x0351" /D "UNICODE_SUPPORT"
 RSC_DEFINES = $(RSC_DEFINES) /D "UNICODE_SUPPORT"