Explorar o código

db driver ogr: fix handling of OFTInteger64

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@73128 15284696-431f-4ddb-bdfa-cd5b030d7da7
Markus Metz %!s(int64=6) %!d(string=hai) anos
pai
achega
4905c1465b
Modificáronse 2 ficheiros con 10 adicións e 0 borrados
  1. 3 0
      db/drivers/ogr/execute.c
  2. 7 0
      db/drivers/ogr/fetch.c

+ 3 - 0
db/drivers/ogr/execute.c

@@ -96,6 +96,9 @@ int db__driver_execute_immediate(dbString * sql)
 	    }
 	    else {
 		if ((cols[i].type != OFTInteger ||
+#if GDAL_VERSION_NUM >= 2000000
+		     cols[i].type != OFTInteger64 ||
+#endif
 		     cols[i].type != OFTReal) && *(cols[i].value) == '\'') {
 		    value = G_strchg(cols[i].value, '\'', ' ');
 		    G_strip(value);

+ 7 - 0
db/drivers/ogr/fetch.c

@@ -144,6 +144,13 @@ int db__driver_fetch(dbCursor * cn, int position, int *more)
 	    value->i = OGR_F_GetFieldAsInteger(c->hFeature, i);
 	    break;
 
+#if GDAL_VERSION_NUM >= 2000000
+        case OFTInteger64:
+	    /* test for integer overflow ? */
+	    value->i = OGR_F_GetFieldAsInteger64(c->hFeature, i);
+	    break;
+#endif
+
 	case OFTReal:
 	    value->d = OGR_F_GetFieldAsDouble(c->hFeature, i);
 	    break;