أكثر

استخدام ArcObjects للبحث أو للحصول على الجرد (IQueryFilter) من مجموعة التحديد؟

استخدام ArcObjects للبحث أو للحصول على الجرد (IQueryFilter) من مجموعة التحديد؟


يبدو أن هذه مشكلة فقط في قواعد البيانات الجغرافية الشخصية (النهاية الخلفية لـ MS Access) ... أحتاج إلى البحث ضمن مجموعة تحديد موجودة لتعبئة مؤشر ICursor. هدفي الرئيسي هو اختبار ما إذا كان IQueryFilter الخاص بي يسترد أكثر من سجل واحد ولكن لا توجد خاصية حساب على ISelectionSet باستخدام QueryFilter تمامًا كما هو الحال في فئة ميزة (IFeatureCLass: FeatureCount (IQueryFilter). لذا من أجل اختبار ما إذا كان QueryFilter الخاص بي يسترجع أكثر من سجل داخل مجموعة التحديد التي يتعين علي استخدام طريقة البحثpFeatureSelection.SelectionSet.Search (pQueryFilter ، True ، selCursor)باستخدام مؤشر إعادة التدوير للسرعة ثم التقدم إلى الصف التالي ومرة ​​أخرى إلى الصف التالي لمعرفة ما إذا كان قد تم استرداد أكثر من ذلك الصف باستخدام QueryFilter الخاص بي. (هذا يبدو غير فعال بشكل فظيع ولكنه يعمل عند عدم استخدامه على PGDB FC)

يعمل هذا بشكل مثالي عند استخدامه مع قواعد البيانات الجغرافية وملفات الأشكال (أقوم بتخصيص جملة where وفقًا لنوع مساحة العمل لفئة الميزة) ولكن عندما أفعل ذلك عبر قاعدة بيانات جغرافية شخصية ، تفشل طريقة ISelectionSet: Search. والغريب أنها لا تفشل إلا بعد أن نجحت في البداية مرات عديدة من قبل. الاستعلامات التي أقوم بتعيينها إلى WhereClause لمرشح الاستعلام بسيطة للغاية (أي"[MASTER_ID] = '56061-UNPAT-28'")

الخطأ الذي أحصل عليه هو "خطأ HRESULT تم إرجاع E_FAIL من استدعاء مكون COM." رقم الخطأ -2147467259

للتكرار ، تعمل الشفرة نفسها بشكل جيد عند استخدامها مع فئة ميزة FGDB و Shapefile ، فهي فقط في PGDB (Access) تفشل بهذه الطريقة وبعد تشغيلها لفترة من الوقت فقط.

أحتاج في النهاية إلى الحصول على عدد ضمن مجموعة التحديد التي تُرضي استعلامًا بسيطًا. إذا كانت هناك طريقة بديلة أو أكثر فاعلية للقيام بذلك ، فيرجى مشاركة ...


عندما تنتهي من استخدام ملفICursorأوIFeatureCursor، تحتاج إلى تحرير كائن COM الأساسي. يمكن القيام بذلك عبرReleaseCOMObjectأو الأفضل من ذلك،FinalReleaseCOMObject. افعل هذا بشكل متكرر إذا كنت داخل حلقة تمر فيها نفس الشيءICursorالإشارة بشكل متكرر إلىISelectionset.


شاهد الفيديو: Tutoriel 9 - ArcGIS: Importation des données shapefiles