| Корректность ГБД [ vvk0 ]Пятница, 10 июля 2009, 17:07
Используя COM (2.6.9), написал приложение, меняющее координаты объектов в ГБД. Возникли вопросы:
1. IGDBFeature::Check() иногда возвращает что check_error!=gdbAreaCheckOK, т.е. в базе есть плохие объекты. Попытка записать им те же координаты, что уже у есть, приводит к ошибке. Как вообще в базу попадают такие объекты? Это нормально? И что с ними можно сделать?
2. Иногда бывает случай, что IGDBFeature::Check() сообщает, что все ОК, но тем не менее попытка установить у объекта те же координаты, что уже у есть, приводит к ошибке. Почему? И что с этим делать? |
|
| [ ObjectLand Support ]Пятница, 10 июля 2009, 18:32
Вы проверяли целостность ГБД (меню ГБД\Целостность...)? |
|
| [ ObjectLand Support ]Понедельник, 13 июля 2009, 13:25
1. Некорректные объекты могли появиться например после импорта из других форматов. Такие объекты лучше подправить, т.е. определить причину некорректности и устранить ее (метод GDBFeature::Check предоставляет достаточно детальную информацию).
2. Такой ситуации не должно возникать, т.к. после установки координат делается проверка с помощью того же метода Check.
Если есть возможность, вышлите нам для примера "кусочек" ГБД в которой был бы такой объект для которого Check возвращает ОК, а попытка установить те же координаты приводит к ошибке. |
|
| [ vvk0 ]Понедельник, 13 июля 2009, 21:20
Спасибо за ответы. Пример выслал. |
|
| [ ObjectLand Support ]Среда, 15 июля 2009, 13:19
Геометрия с внутренним номером 38838 в слое "Участки" является текстовой (свойство Feature::SpatialCategory возвращает константу gdbSpatialCategoryText). Она является некорректной т.к. для нее не установлен текст (т.е. свойство Feature::Text возвращает пустую строку).
Есть 2 варианта:
1. Установить для нее какой-л. текст (если Вы знаете какой);
2. Удалить такую геометрию. |
|
| [ ObjectLand Support ]Среда, 15 июля 2009, 15:00
P.S. Метод Feature::Check имеет смысл только для площадных и растровых геометрий. |
|
| [ vvk0 ]Среда, 15 июля 2009, 19:46
|
ОтветитьЗнаком «*» отмечены обязательные для заполнения поля. |