Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Лебедев Гость
|
Добавлено: Пт Май 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. удалить объект, оставив запись в таблице можно с помощью команды Правка-Удалить только объекты |
|
Вернуться к началу |
|
|
Serj Гость
|
Добавлено: Чт Июн 22, 2006 12:05 pm Заголовок сообщения: |
|
|
Хе, ну тогда между двумя Select-ами неплохо было бы проверить, а попало что-нибудь в temp, а то Mapinfo может так же хрюкнуть ошибку... :) |
|
Вернуться к началу |
|
|
Андрей Могильный
Зарегистрирован: 21.03.2006 Сообщения: 864
|
Добавлено: Ср Авг 02, 2006 3:00 pm Заголовок сообщения: |
|
|
С чего это на втором селекте MapInfo хрюкнет, если таблица temp не содержит данных? Ничего подобного, нормально вернет такую же пустую выборку. |
|
Вернуться к началу |
|
|
|