QGis, Spatialite, Python, не удается добавить объект в слой [закрыто]Python

Программы на Python
Ответить
Anonymous
 QGis, Spatialite, Python, не удается добавить объект в слой [закрыто]

Сообщение Anonymous »

Я создал плагин QGis для реализации некоторых автоматических процессов. Теперь я застрял в добавлении объектов в слой. С созданием новой геометрии и нового элемента все в порядке. Но когда дело доходит до «addFeature» / «commitChanges», возникает ошибка поставщика данных.
Я попробовал этот код:

Код: Выделить всё

dbPfad = "C:\QGis\MyDb.sqlite"

layerObjekte = QgsVectorLayer(f"dbname='{dbPfad}' table='objekte' (geometry) sql=", "layerObjekte", "spatialite")

layerObjekte.startEditing()
if not layerObjekte.isEditable():
return

points = [QgsPointXY(100 , 100),
QgsPointXY(200, 100),
QgsPointXY(200, 200),
QgsPointXY(100, 200),
QgsPointXY(100, 100)]
square_geom = QgsGeometry.fromPolygonXY([points])

new_feature = QgsFeature()
new_feature.setFields(layerObjekte.fields(), True)

new_feature.setGeometry(square_geom)
if not new_feature.geometry().isGeosValid():
return

# The table also has an attribute "id" (autoincrement).
# I was hinted not to set this attribute.
#new_feature.setAttribute("id", 999)

new_feature.setAttribute("lfdnr", 1)
new_feature.setAttribute("status", 0)

if not new_feature.isValid():
return

success = layerObjekte.addFeature(new_feature)

layerObjekte.commitChanges()
Все верно, но вот ошибки, о которых сообщает catch:

Datenanbieterfehler
SQLite-Fehler:unbekannte Ursache
INSERT INTO "objekte"("geometry","lfdnr","status") VALUES
(ST_Multi(GeomFromWKB(?, 25832)),?,?,?)

Переведено на английский:

ошибка поставщика данных
Ошибка SQLite: неизвестная причина
INSERT...

Любой есть идеи?

Подробнее здесь: https://stackoverflow.com/questions/798 ... ayer-fails
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»