www.map-info.ru :: Просмотр темы - Оператор Select
                               РќР° главную страницу сайта

 
                                
ВходВход    РегистрацияРегистрация    ПрофильПрофиль    ПользователиПользователи    ГруппыГруппы    FAQFAQ    ПоискПоиск  

 
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Предыдущая тема :: Следующая тема  
Автор Сообщение
Лебедев
Гость





СообщениеДобавлено: Пт Май 26, 2006 7:26 am    Заголовок сообщения: Оператор Select Добавить ответ со ссылкой на данный текст

Коллеги! Я понимаю, что можно как ни будь извернуться, но почему не работает такой запрос:
Select * from MyTable where ObjectInfo(Obj, 1) = 4 into selection
говоря, что есть несовпадение типов?
Вернуться к началу
Serj
Гость





СообщениеДобавлено: Пт Май 26, 2006 11:15 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Да потому что, ObjectInfo в зависимости от значения атрибута может вернуть различные типы данных, и на этапе формирования запроса это не анализируется...
Я в таком случае от этой беды избавляюсь так:
select * from MyTable where Str$(ObjectInfo(Obj, 1)) = "4" into Selection
Вернуться к началу
Нестеров Валерий



Зарегистрирован: 21.03.2006
Сообщения: 492

СообщениеДобавлено: Вс Май 28, 2006 3:16 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Или так:
Select * from MyTable where int(ObjectInfo(Obj, 1)) = 4 into Selection
_________________
Жизнь прекрасна!i
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Лебедев
Гость





СообщениеДобавлено: Вт Май 30, 2006 12:32 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Спасибо, задачка упростилась! Похоже, что подобный подход избавит и от других недоразумений.
Вернуться к началу
Андрей Могильный



Зарегистрирован: 21.03.2006
Сообщения: 864

СообщениеДобавлено: Вт Июн 20, 2006 2:01 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Только учтите коллеги маленькую хитрость MapInfo. Если в таблице MapInfo есть запись, но с ней не связан графический объект и вы над этой таблицей сделаете такой запрос, то получите ошибку. Это вобщем-то бага MapInfo, я считаю, но нам деваться некуда и надо это обходить...
Сначала делать
select * from MyTable where obj into temp
а затем
select * from temp where Str$(ObjectInfo(Obj, 1)) = "4" into Selection

P.S. удалить объект, оставив запись в таблице можно с помощью команды Правка-Удалить только объекты
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Serj
Гость





СообщениеДобавлено: Чт Июн 22, 2006 12:05 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Хе, ну тогда между двумя Select-ами неплохо было бы проверить, а попало что-нибудь в temp, а то Mapinfo может так же хрюкнуть ошибку... :)
Вернуться к началу
Андрей Могильный



Зарегистрирован: 21.03.2006
Сообщения: 864

СообщениеДобавлено: Ср Авг 02, 2006 3:00 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

С чего это на втором селекте MapInfo хрюкнет, если таблица temp не содержит данных? Ничего подобного, нормально вернет такую же пустую выборку.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Top.Mail.Ru