QGIS - PostGIS - SQL CLOSE qgisf2

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
oleg
Завсегдатай
Сообщения: 460
Зарегистрирован: 03 фев 2005, 11:46
Репутация: 15
Контактная информация:

QGIS - PostGIS - SQL CLOSE qgisf2

Сообщение oleg » 23 фев 2012, 02:27

Слой линий из PostGIS перестал сохраняться в файл с использованием инструмента "Сохранить как" и "Сохранить выделение как". Зафиксировать момент сбоя и возможную причину не удалось. При этом в базе редактирует и сохраняет без ошибок. С другими слоями этой ошибки нет.

При ошибке сохранения сообщает о такой ошибке:

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

Потеряно 1 состояний курсора.
SQL: CLOSE qgisf2
Результат: 7 (ERROR: current transaction is aborted, commands ignored until end of transaction block
)
Перезапуски сервера БД не помогли.
Подскажите, пожалуйста, откуда можно начинать поиски источника проблемы. Спасибо.

Тк сообщение получил от QGIS - размещаю в этом форуме вопрос, при необходимости можно переносить в PostGIS.
Вложения
sql_close.png
sql_close.png (4.26 КБ) 7490 просмотров

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: QGIS - PostGIS - SQL CLOSE qgisf2

Сообщение Voltron » 23 фев 2012, 12:32

Версия и ревизия QGIS?

oleg
Завсегдатай
Сообщения: 460
Зарегистрирован: 03 фев 2005, 11:46
Репутация: 15
Контактная информация:

Re: QGIS - PostGIS - SQL CLOSE qgisf2

Сообщение oleg » 23 фев 2012, 15:17

Voltron писал(а):Версия и ревизия QGIS?
1.7.3 00624b3

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: QGIS - PostGIS - SQL CLOSE qgisf2

Сообщение Voltron » 23 фев 2012, 15:28

Должно быть исправлено в master. В 1.7.4 надо проверить, но судя по логам, тоже должно быть исправлено

oleg
Завсегдатай
Сообщения: 460
Зарегистрирован: 03 фев 2005, 11:46
Репутация: 15
Контактная информация:

Re: QGIS - PostGIS - SQL CLOSE qgisf2

Сообщение oleg » 28 фев 2012, 00:11

Ошибка повторилась в 1.7.4 снова в линейном слое. Во время, когда появилась ошибка, из клиентов использовался только QGIS в режиме редактирования.

Проверил другими клиентами – ошибка везде, проблема с данными. ArcGIS ругается на недостаток точек и не читает (картинки ниже). gvSIG читает, но прерывает экспорт в шейп с сообщением ошибки (см. ниже) на символичном числе обработанных записей – 59999 (dbf растет до 60000 записей); целевой файл при этом создается и удаляется по "ОК" на ошибке.

QGIS 1.7.4 читает, редактирует, экспорт не начинает с сообщением ошибки (см. в начале темы).
Master - не экспортирует с сообщением о успешном завершении.

Возможно причина в каком-то ограничении на число строк? Возможно, возникает ошибка геометрии?

Буду рад советам и направлениям.

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

Can´t read the driver: PostGIS Driver  com.hardcode.gdbms.driver.exceptions.ReadDriverException: Can´t read the driver: PostGIS Driver      com.iver.cit.gvsig.fmap.drivers.jdbc.postgis.PostGisDriver.getFeatureIterator(PostGisDriver.java:1057)     com.iver.cit.gvsig.fmap.layers.VectorialDBAdapter.getFeatureIterator(VectorialDBAdapter.java:126)     com.iver.cit.gvsig.fmap.layers.VectorialDBAdapter.getFeatureIterator(VectorialDBAdapter.java:147)     com.iver.cit.gvsig.fmap.layers.FLyrVect._draw(FLyrVect.java:399)     com.iver.cit.gvsig.fmap.layers.FLyrVect.draw(FLyrVect.java:636)     com.iver.cit.gvsig.fmap.DefaultMapContextDrawer.draw(DefaultMapContextDrawer.java:209)     com.iver.cit.gvsig.fmap.DefaultMapContextDrawer.draw(DefaultMapContextDrawer.java:175)     com.iver.cit.gvsig.fmap.MapContext.draw(MapContext.java:1097)     com.iver.cit.gvsig.fmap.MapControl$PaintingRequest.paint(MapControl.java:1043)     com.iver.cit.gvsig.fmap.MapControl$Drawer2$Worker.run(MapControl.java:1234)     java.lang.Thread.run(Unknown Source) com.hardcode.gdbms.driver.exceptions.ReadDriverException: Can´t read the driver: PostGIS Driver      com.iver.cit.gvsig.fmap.drivers.jdbc.postgis.PostGisDriver.myGetFeatureIterator(PostGisDriver.java:414)     com.iver.cit.gvsig.fmap.drivers.jdbc.postgis.PostGisDriver.getFeatureIterator(PostGisDriver.java:1047)     com.iver.cit.gvsig.fmap.layers.VectorialDBAdapter.getFeatureIterator(VectorialDBAdapter.java:126)     com.iver.cit.gvsig.fmap.layers.VectorialDBAdapter.getFeatureIterator(VectorialDBAdapter.java:147)     com.iver.cit.gvsig.fmap.layers.FLyrVect._draw(FLyrVect.java:399)     com.iver.cit.gvsig.fmap.layers.FLyrVect.draw(FLyrVect.java:636)     com.iver.cit.gvsig.fmap.DefaultMapContextDrawer.draw(DefaultMapContextDrawer.java:209)     com.iver.cit.gvsig.fmap.DefaultMapContextDrawer.draw(DefaultMapContextDrawer.java:175)     com.iver.cit.gvsig.fmap.MapContext.draw(MapContext.java:1097)     com.iver.cit.gvsig.fmap.MapControl$PaintingRequest.paint(MapControl.java:1043)     com.iver.cit.gvsig.fmap.MapControl$Drawer2$Worker.run(MapControl.java:1234)     java.lang.Thread.run(Unknown Source) org.postgresql.util.PSQLException: ERROR: geometry requires more points      org.postgresql.util.PSQLException.parseServerError(PSQLException.java:139)     org.postgresql.core.QueryExecutor.executeV3(QueryExecutor.java:152)     org.postgresql.core.QueryExecutor.execute(QueryExecutor.java:100)     org.postgresql.core.QueryExecutor.execute(QueryExecutor.java:43)     org.postgresql.jdbc1.AbstractJdbc1Statement.execute(AbstractJdbc1Statement.java:517)     org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:50)     org.postgresql.jdbc1.AbstractJdbc1Statement.executeQuery(AbstractJdbc1Statement.java:233)     org.postgresql.jdbc1.AbstractJdbc1Statement.executeQuery(AbstractJdbc1Statement.java:221)     com.iver.cit.gvsig.fmap.drivers.jdbc.postgis.PostGisFeatureIterator. (PostGisFeatureIterator.java:125)     com.iver.cit.gvsig.fmap.drivers.jdbc.postgis.PostGisDriver.myGetFeatureIterator(PostGisDriver.java:403)     com.iver.cit.gvsig.fmap.drivers.jdbc.postgis.PostGisDriver.getFeatureIterator(PostGisDriver.java:1047)     com.iver.cit.gvsig.fmap.layers.VectorialDBAdapter.getFeatureIterator(VectorialDBAdapter.java:126)     com.iver.cit.gvsig.fmap.layers.VectorialDBAdapter.getFeatureIterator(VectorialDBAdapter.java:147)     com.iver.cit.gvsig.fmap.layers.FLyrVect._draw(FLyrVect.java:399)     com.iver.cit.gvsig.fmap.layers.FLyrVect.draw(FLyrVect.java:636)     com.iver.cit.gvsig.fmap.DefaultMapContextDrawer.draw(DefaultMapContextDrawer.java:209)     com.iver.cit.gvsig.fmap.DefaultMapContextDrawer.draw(DefaultMapContextDrawer.java:175)     com.iver.cit.gvsig.fmap.MapContext.draw(MapContext.java:1097)     com.iver.cit.gvsig.fmap.MapControl$PaintingRequest.paint(MapControl.java:1043)     com.iver.cit.gvsig.fmap.MapControl$Drawer2$Worker.run(MapControl.java:1234)     java.lang.Thread.run(Unknown Source) null com.hardcode.gdbms.driver.exceptions.ReadDriverException: Can´t read the driver: PostGIS JDBC Driver      com.iver.cit.gvsig.fmap.drivers.jdbc.postgis.PostGisDriver.getShape(PostGisDriver.java:231)     com.iver.cit.gvsig.fmap.layers.VectorialDBAdapter.getShape(VectorialDBAdapter.java:189)     com.iver.cit.gvsig.ExportTo$WriterTask.run(ExportTo.java:174)     com.iver.andami.PluginServices$1.construct(PluginServices.java:405)     com.iver.utiles.swing.threads.SwingWorker$2.run(SwingWorker.java:108)     java.lang.Thread.run(Unknown Source) org.postgresql.util.PSQLException: ERROR: geometry requires more points      org.postgresql.util.PSQLException.parseServerError(PSQLException.java:139)     org.postgresql.core.QueryExecutor.executeV3(QueryExecutor.java:152)     org.postgresql.core.QueryExecutor.execute(QueryExecutor.java:100)     org.postgresql.core.QueryExecutor.execute(QueryExecutor.java:43)     org.postgresql.jdbc1.AbstractJdbc1Statement.execute(AbstractJdbc1Statement.java:517)     org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:50)     org.postgresql.jdbc1.AbstractJdbc1Statement.executeQuery(AbstractJdbc1Statement.java:233)     org.postgresql.jdbc1.AbstractJdbc1Statement.executeQuery(AbstractJdbc1Statement.java:221)     com.iver.cit.gvsig.fmap.drivers.jdbc.postgis.PostGisDriver.setAbsolutePosition(PostGisDriver.java:738)     com.iver.cit.gvsig.fmap.drivers.jdbc.postgis.PostGisDriver.getShape(PostGisDriver.java:221)     com.iver.cit.gvsig.fmap.layers.VectorialDBAdapter.getShape(VectorialDBAdapter.java:189)     com.iver.cit.gvsig.ExportTo$WriterTask.run(ExportTo.java:174)     com.iver.andami.PluginServices$1.construct(PluginServices.java:405)     com.iver.utiles.swing.threads.SwingWorker$2.run(SwingWorker.java:108)     java.lang.Thread.run(Unknown Source)
Вложения
gvGIS_pgGeoError.png
gvGIS_pgGeoError.png (4.72 КБ) 7377 просмотров
ArcMap_pgGeoError.png
ArcMap_pgGeoError.png (4.32 КБ) 7377 просмотров

Аватара пользователя
Aleksandr Dezhin
Активный участник
Сообщения: 244
Зарегистрирован: 03 фев 2010, 10:47
Репутация: 14
Откуда: Москва

Re: QGIS - PostGIS - SQL CLOSE qgisf2

Сообщение Aleksandr Dezhin » 28 фев 2012, 04:19

Может быть каким-то образом затесалась геометрия типа, отличного от LINESTRING? Например EMPTY или GEOMETRY COLLECTION? При ручной регистрации в geometry_columns такое вполне возможно.

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

SELECT * FROM tablename WHERE geometrytype(the_geom) <> 'LINESTRING'

Ответить

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей