Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么spatialite在我不更改行的情况下返回不正确的total_changes()?_Python_Sqlite_Spatialite - Fatal编程技术网

Python 为什么spatialite在我不更改行的情况下返回不正确的total_changes()?

Python 为什么spatialite在我不更改行的情况下返回不正确的total_changes()?,python,sqlite,spatialite,Python,Sqlite,Spatialite,您可以在此处阅读有关总变更的信息: 我在使用python接口创建spatialite-pyspatialite时看到了这个问题,但可以使用windows spatialite.exe重现这个问题。请注意spatialite.exe total_的变化并不像预期的那样为0,并且随着每个select语句的增加而增加-奇怪。它应该只增加更新、插入和删除。还要注意,sqlite做得很对。有什么建议吗 C:\crs\bde2>spatialite test6.db SpatiaLi

您可以在此处阅读有关总变更的信息:

我在使用python接口创建spatialite-pyspatialite时看到了这个问题,但可以使用windows spatialite.exe重现这个问题。请注意spatialite.exe total_的变化并不像预期的那样为0,并且随着每个select语句的增加而增加-奇怪。它应该只增加更新、插入和删除。还要注意,sqlite做得很对。有什么建议吗

    C:\crs\bde2>spatialite test6.db
    SpatiaLite version ..: 4.2.0    Supported Extensions:
            - 'VirtualShape'        [direct Shapefile access]
            - 'VirtualDbf'          [direct DBF access]
            - 'VirtualXL'           [direct XLS access]
            - 'VirtualText'         [direct CSV/TXT access]
            - 'VirtualNetwork'      [Dijkstra shortest path]
            - 'RTree'               [Spatial Index - R*Tree]
            - 'MbrCache'            [Spatial Index - MBR cache]
            - 'VirtualSpatialIndex' [R*Tree metahandler]
            - 'VirtualXPath'        [XML Path Language - XPath]
            - 'VirtualFDO'          [FDO-OGR interoperability]
            - 'VirtualGPKG' [OGC GeoPackage interoperability]
            - 'VirtualBBox'         [BoundingBox tables]
            - 'SpatiaLite'          [Spatial SQL - OGC]
    PROJ.4 version ......: Rel. 4.8.0, 6 March 2012
    GEOS version ........: 3.4.2-CAPI-1.8.2 r3921
    LWGEOM version ......: 2.1.3
    TARGET CPU ..........: mingw32
    SQLite version ......: 3.8.5
    Enter ".help" for instructions
    SQLite version 3.8.5 2014-06-04 14:06:34
    Enter ".help" for instructions
    Enter SQL statements terminated with a ";"
    spatialite>
    spatialite>
    spatialite> SELECT total_changes() AS 'Total changes';
    1
    spatialite> SELECT total_changes() AS 'Total changes';
    3
    spatialite> .quit

    C:\crs\bde2>sqlite3 test6.db
    SQLite version 3.8.7 2014-10-17 11:24:17
    Enter ".help" for usage hints.
    sqlite>
    sqlite> select total_changes() as 'Total changes';
    0
    sqlite> select total_changes() as 'Total changes';
    0
报告说:

sqlite3_total_changes返回的计数包括来自所有上下文的所有更改和由所做的更改


SpatiaLite使用大量触发器和运行SQL命令的用户定义函数。

反馈良好。在这个例子中,我只做了一个选择。触发器仅在更新、插入和删除时可用。外键操作仅在更新和删除时进行。那么,SELECT如何创建更改呢?或者可能还有更多?要么total_changes被重新定义,要么spatialite.exe做了一些其他事情。有人重现了上述结果吗?