我正在尝试计算在某个字段中包含文本“Fehler”的功能。这仅在使用OGRSQL方言时有效,但在使用SQLITE时返回None。我想使用SQLITE-dialect,因为我循环遍历几个SQL-Strings,其中一些包含SUM(LENGTH)/ 1000,它只能在SQLITE中使用,而不能在OGRSQL中使用。 我正在使用Python 2.7.5和gdal 2.1.3 这是我正在使用的代码:
import os
try:
from osgeo import ogr
from osgeo import gdal
except:
sys.exit("Failed to import OGR-module. Please check the GDAL-Installation!")
srcFile = r"D:\Didi\Tmp\OGR_Select_Bug\Export.shp"
driver = ogr.GetDriverByName('ESRI Shapefile')
destFileDS = driver.Open(srcFile, 0)
sql = u"SELECT COUNT(*) as Anzahl from %s WHERE rstatus like '%%Fehler'" % (os.path.basename(srcFile)[:-4])
#Works
actLayer = destFileDS.ExecuteSQL(statement=sql.encode('utf-8'), dialect='OGRSQL')
actFeat = actLayer.GetNextFeature()
destFileDS.ReleaseResultSet(actLayer)
#Returns none
actLayer = destFileDS.ExecuteSQL(statement=sql.encode('utf-8'), dialect='SQLITE')
actFeat = actLayer.GetNextFeature()
destFileDS.ReleaseResultSet(actLayer)