Daha çox

Axtarmaq və ya seçim dəstindən say (IQueryFilter) əldə etmək üçün ArcObjects istifadə edirsiniz?

Axtarmaq və ya seçim dəstindən say (IQueryFilter) əldə etmək üçün ArcObjects istifadə edirsiniz?


Bu yalnız Personal Geodatabases (MS Access arxa ucu) ilə bağlı bir problem kimi görünür ... Bir ICursor doldurmaq üçün mövcud bir seçim dəsti içərisində axtarmalıyam. Əsas məqsədim, IQueryFilter -in birdən çox rekord əldə edib -etmədiyini yoxlamaqdır, ancaq bir xüsusiyyət sinifinin (IFeatureCLass: FeatureCount (IQueryFilter)) olduğu kimi bir QueryFilter istifadə edərək ISelectionSet üzərində heç bir xüsusiyyət yoxdur. Axtarış metodundan istifadə etməli olduğum bir seçim dəsti içərisində birdən çox qeyd alırpFeatureSelection.SelectionSet.Search (pQueryFilter, True, selCursor)QueryFilter -dən istifadə edərək bir satırın daha çox alındığını öyrənmək üçün sürət üçün təkrar emal kursorundan istifadə edərək sonra növbəti sıraya və növbəti sıraya keçin. (Bu olduqca təsirsiz görünür, lakin PGDB FC üzərində istifadə edilmədikdə işləyir)

Bu, fayl coğrafi verilənlər bazası və şəkil sənədləri ilə istifadə edildikdə mükəmməl işləyir (mən burada xüsusiyyət maddəsinin iş sahəsinin növünə əsaslanaraq uyğunlaşdırıram), ancaq bunu şəxsi geodatabase üzərində etdiyim zaman ISelectionSet: Axtarış metodu uğursuz olur. Qəribədir ki, yalnız əvvəllər dəfələrlə uğur qazandıqdan sonra uğursuz olur. Sorğu filtrinin WhereClause -a təyin etdiyim sorğular çox sadədir (yəni."[MASTER_ID] = '56061-UNPAT-28'")

Aldığım səhv "HRESULT E_FAIL xətası bir COM komponentinə edilən zəngdən geri qaytarıldı." Səhv nömrəsi -2147467259

Yenə demək istəyirəm ki, eyni kod FGDB xüsusiyyət sinfi və Shapefile ilə işlədikdə yaxşı işləyir, yalnız PGDB -də (Access) bu şəkildə uğursuz olur və yalnız bir müddət işlədikdən sonra.

Nəticədə sadə bir sorğunu təmin edən bir seçim dəsti içərisində bir say əldə etməliyəm. Bunun alternativ və ya daha təsirli bir yolu varsa, paylaşın ...


Birini bitirdiyiniz zamanICursorvə yaIFeatureCursor, əsas COM obyektini buraxmalısınız. Bu vasitəsilə edilə bilərReleaseCOMObjectya da daha yaxşıFinalReleaseCOMObject. Eyni şeyi keçdiyiniz bir döngənin içindəsinizsə bunu dəfələrlə edinICursordəfələrlə istinadAxtarış.


Videoya baxın: Download ArcGIS Pro in FREE and Install. No Signup ESRI Account required. GIS