Changeset: d413d20d0a83 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d413d20d0a83
Modified Files:
        clients/odbc/driver/ODBCGlobal.h
        clients/odbc/driver/SQLGetInfo.c
Branch: Aug2011
Log Message:

Use global version number for SQL_DBMS_VER and SQL_DRIVER_VER.
The value returned for SQL_DBMS_VER is not correct: it should be the
version of the server, but we don't know that version.


diffs (60 lines):

diff --git a/clients/odbc/driver/ODBCGlobal.h b/clients/odbc/driver/ODBCGlobal.h
--- a/clients/odbc/driver/ODBCGlobal.h
+++ b/clients/odbc/driver/ODBCGlobal.h
@@ -59,7 +59,6 @@
 /* some general defines */
 #define MONETDB_ODBC_VER     "03.52"   /* must be synchronous with ODBCVER */
 #define MONETDB_DRIVER_NAME  "MonetDBODBClib"
-#define MONETDB_DRIVER_VER   "1.00"
 #define MONETDB_PRODUCT_NAME "MonetDB ODBC driver"
 #define MONETDB_SERVER_NAME  "MonetDB"
 
diff --git a/clients/odbc/driver/SQLGetInfo.c b/clients/odbc/driver/SQLGetInfo.c
--- a/clients/odbc/driver/SQLGetInfo.c
+++ b/clients/odbc/driver/SQLGetInfo.c
@@ -49,6 +49,7 @@ SQLGetInfo_(ODBCDbc *dbc,
            SQLSMALLINT *StringLengthPtr)
 {
        int nValue = 0;
+       char buf[64];
        const char *sValue = NULL;      /* iff non-NULL, return string value */
        int len = 0;
 
@@ -386,9 +387,14 @@ SQLGetInfo_(ODBCDbc *dbc,
        case SQL_DRIVER_NAME:
                sValue = MONETDB_DRIVER_NAME;
                break;
-       case SQL_DRIVER_VER:
-               sValue = MONETDB_DRIVER_VER;
+       case SQL_DRIVER_VER: {
+               int maj = 0, min = 0, pat = 0;
+               sscanf(PACKAGE_VERSION, "%d.%d.%d", &maj, &min, &pat);
+               snprintf(buf, sizeof(buf), "%02d.%02d.%04d %s", maj, min, pat,
+                        MONETDB_RELEASE);
+               sValue = buf;
                break;
+       }
        case SQL_FETCH_DIRECTION:
                nValue = SQL_FD_FETCH_NEXT;
                len = sizeof(SQLUSMALLINT);
@@ -419,11 +425,17 @@ SQLGetInfo_(ODBCDbc *dbc,
                len = sizeof(SQLUSMALLINT);
                break;
        case SQL_DBMS_NAME:
-               sValue = MONETDB_PRODUCT_NAME;
+               sValue = PACKAGE_NAME;
                break;
-       case SQL_DBMS_VER:
-               sValue = MONETDB_DRIVER_VER;
+       case SQL_DBMS_VER: {
+               int maj = 0, min = 0, pat = 0;
+               /* should be the server's version, not the client's */
+               sscanf(PACKAGE_VERSION, "%d.%d.%d", &maj, &min, &pat);
+               snprintf(buf, sizeof(buf), "%02d.%02d.%04d %s", maj, min, pat,
+                        MONETDB_RELEASE);
+               sValue = buf;
                break;
+       }
        case SQL_PROCEDURES:
                sValue = "N";
                break;
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to