Daha çox

PyQGIS QgsVectorLayer (). İsValid () niyə Oracle baxışları ilə FALSE qaytarır?


Bu Oracle CƏDVƏLİ ilə mükəmməl işləyir, ancaq GÖRÜNTÜ ilə deyil. Niyə?

uri = QgsDataSourceURI () uri.setConnection (host, port, db, username, pw) uri.setWkbType (QGis.WKBPolygon) uri.setDataSource (şema, cədvəl, geomcol) vlayer = QgsVectorLayer (uri.uri (), cədvəl, ' oracle ') çap vlayer.isValid ()

... və TRUE qaytarır. Ancaq eyni kod bir GÖRÜNTÜ ilə işləmir. Həm CƏDVƏL, həm də VIEW USER_SDO_GEOM_METADATA daxilində düzgün giriş var. Verilənlər bazasındakı bütün məkan cədvəlləri düzgün yüklənir; baxışların heç biri yoxdur. Bütün məkan cədvəlləri və baxışları QGIS-də Layer-> Layer Add-> Add Oracle Spatial Layer istifadə edərək düzgün yüklənir. Yalnız masalarla işləmək üçündür və ya səhv bir şey edirəm?


VIEWS üçün təbəqə üçün xüsusiyyətləri unikal şəkildə müəyyən edən sütunu təyin etməlisiniz, əlavə etməyə çalışın:

uri.setKeyColumn ("sənin_unique_field")

Bu işləyir:

uri = QgsDataSourceURI () uri.setConnection ("doracle1.aytomalaga.intranet", "dbd3", "eqgis", "eqgis") uri.setSrid ('25830'); uri.setDataSource ('EQGIS', 'MSEQESLU_V', 'SDOGEOMETRIA', ", 'ID_EQESLU') uri.setWkbType (QGis.WKBMultiPoint) vlayer = QgsVectorLayer (uri.uri ()," capa ", 'ya' '

SetDataSource-un beş parametrli versiyasını seçməlisiniz.


Videoya baxın: QGIS Python PyQGIS - Calculate Field Values Field Calculator (Oktyabr 2021).