import
sqlite3
with sqlite3.connect(
':memory:'
) as conn:
conn.enable_load_extension(
True
)
conn.execute(
"SELECT load_extension('mod_spatialite')"
)
cur.execute("SELECT distinct(FULLNAME), Glength(Geometry) FROM TarrantRoads")
How are you getting from conn to cur? Can you show the whole sample?
Brad
import sqlite3
from sqlite3 import Error
import sys
if __name__ == '__main__':
print (' main working')
with sqlite3.connect(':memory:') as conn:
conn.enable_load_extension(True)
#conn.execute("CREATE VIRTUAL TABLE testrtree USING rtree(id,minX,maxX,minY,maxY);")
conn.execute("SELECT load_extension('mod_spatialite')")
conn.execute("SELECT InitSpatialMetaData()")
database = "/Users/mousa/Documents/Tarrant.sqlite"
vs = str([i for i in conn.execute("""SELECT spatialite_version()""")])
vgeos = str([i for i in conn.execute("""SELECT geos_version()""")])
print('Spatialite {} (GEOS {})'.format(vs.strip("()[]',"), vgeos.strip("()',[]")))
try:
conn = sqlite3.connect(database)
print("SQLite : %s" % (sqlite3.sqlite_version))
print("Thi is test")
except Error as e:
print(e)
cur = conn.cursor()
cur.execute("SELECT distinct(FULLNAME), Glength(Geometry) FROM TarrantRoads")
rows = cur.fetchall()
print(rows[30])
For the second part, How can I load the extension to the connection I am using? Is not enough to call below line of code:
I believe I missed something but I don't know what is it.
Could you please give me some examples how I load the extension in the connection and utilize spatialite functions without changing the connection.
I didn't see such complete example using mod_spatialite and execute SQL with spatialite functions.
Yes, sure...Please have a look below code:
import sqlite3
from sqlite3 import Error
import sys
if __name__ == '__main__':
print (' main working')
with sqlite3.connect(':memory:') as conn:
conn.enable_load_extension(True)
#conn.execute("CREATE VIRTUAL TABLE testrtree USING rtree(id,minX,maxX,minY,maxY);")
conn.execute("SELECT load_extension('mod_spatialite')")
conn.execute("SELECT InitSpatialMetaData()")
database = "/Users/mousa/Documents/Tarrant.sqlite"
vs = str([i for i in conn.execute("""SELECT spatialite_version()""")])
vgeos = str([i for i in conn.execute("""SELECT geos_version()""")])
print('Spatialite {} (GEOS {})'.format(vs.strip("()[]',"), vgeos.strip("()',[]")))
try:
conn = sqlite3.connect(database)
print("SQLite : %s" % (sqlite3.sqlite_version))
print("Thi is test")
except Error as e:
print(e)
cur = conn.cursor()
cur.execute("SELECT distinct(FULLNAME), Glength(Geometry) FROM TarrantRoads")
rows = cur.fetchall()
print(rows[30])
import sqlite3
from sqlite3 import Error
import sys
if __name__ == '__main__':
print (' main working')
with sqlite3.connect('/Users/mousa/Documents/Tarrant.sqlite') as conn:
conn.enable_load_extension(True)
conn.execute("SELECT load_extension('mod_spatialite')")
conn.execute("SELECT InitSpatialMetaData()")
conn.execute("SELECT distinct(FULLNAME), Glength(Geometry) FROM TarrantRoads")
rows = conn.fetchall()
print(rows[30])
I got below error:C:\Python27\python.exe C:/Users/mossa/PycharmProjects/SpatialIntegration/TestSpatialite.pymain workingTraceback (most recent call last):File "C:/Users/mossa/PycharmProjects/SpatialIntegration/TestSpatialite.py", line 18, in <module>rows = conn.fetchall()AttributeError: 'sqlite3.Connection' object has no attribute 'fetchall'InitSpatiaMetaData() error:"table spatial_ref_sys already exists"Process finished with exit code 1The code is:
import sqlite3
from sqlite3 import Error
import sys
if __name__ == '__main__':
print (' main working')
with sqlite3.connect('/Users/mousa/Documents/Tarrant.sqlite') as conn:
conn.enable_load_extension(True)
conn.execute("SELECT load_extension('mod_spatialite')")
conn.execute("SELECT InitSpatialMetaData()")
cur.execute("SELECT distinct(FULLNAME), Glength(Geometry) FROM TarrantRoads")
conn.execute("SELECT distinct(FULLNAME), Glength(Geometry) FROM TarrantRoads")
--
You received this message because you are subscribed to a topic in the Google Groups "SpatiaLite Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/spatialite-users/93eFMPty05k/unsubscribe.
To unsubscribe from this group and all its topics, send an email to spatialite-users+unsubscribe@googlegroups.com.
To post to this group, send email to spatialite-users@googlegroups.com.