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

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

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



Зарегистрирован: 25.05.2010
Сообщения: 14
Откуда: Астрахань

СообщениеДобавлено: Ср Сен 07, 2011 11:31 am    Заголовок сообщения: Как узнать выбраны ли записи в таблице. Добавить ответ со ссылкой на данный текст

Здравствуйте...
Есть такое вырожение...

TABOBJ1=TABNAME+".Obj"
Select * From TABNAME, Untitled
Where TABOBJ1 Intersects Untitled.Obj And Untitled.Au=""+NAMESC+"" Into Selection


И иногда объектов на пересечении слоев нет.
Так вот, как это узнать?
Спасибо
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Hirurg



Зарегистрирован: 25.05.2010
Сообщения: 14
Откуда: Астрахань

СообщениеДобавлено: Ср Сен 07, 2011 12:17 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Ой до самого доперло)))


if TABOBJ1 Intersects Untitled.Obj And Untitled.Au=""+NAMESC+"" = TRUE Then goto aaa
Else goto eee
End if
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
FedorinoFF



Зарегистрирован: 01.02.2007
Сообщения: 272
Откуда: Санкт-Петербург

СообщениеДобавлено: Сб Сен 10, 2011 9:22 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

а может правильнее проверить количество записей в результирующей таблице?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
SergS



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

СообщениеДобавлено: Пн Сен 12, 2011 5:15 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Hirurg писал(а):
Ой до самого доперло)))


if TABOBJ1 Intersects Untitled.Obj And Untitled.Au=""+NAMESC+"" = TRUE Then goto aaa
Else goto eee
End if


этаким образом Вы определите пересекаются ли объекты ТЕКУЩИХ записей в таблицах TABOBJ1 и Untitled (ну и равно ли поле Au текущей записи таблицы Untitled этому самому NAMESC). но не получите никакой информации об остальных записях (объектах) таблиц.
Еще сомнение вызывает фрагмент записи
Untitled.Au=""+NAMESC+"" = TRUE
и с кавычками что то не так - количество их какое-то не такое(на фих они вообще здесь нужны?) и проверка на TRUE предыдущего сравнения.....

правильно у FedorinoFF-а :
после запроса
Hirurg писал(а):

Select * From TABNAME, Untitled
Where TABOBJ1 Intersects Untitled.Obj And Untitled.Au=""+NAMESC+"" Into Selection


спросить
if tableinfo(selection, TAB_INFO_NROWS) = 0 Then
'нет пересекающихся объектов - делаем так-то
.....
else
'есть - пересекающиеся объекты - делаем как то по другому
....
end if

ну и с кавычками все таки разберитесь - не будет такая запись работать
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Hirurg



Зарегистрирован: 25.05.2010
Сообщения: 14
Откуда: Астрахань

СообщениеДобавлено: Вт Сен 20, 2011 1:46 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Я это все уже побывал...
И в моем случае это не работает...
Работает только вот этот код который я написал выше...
И когда я пытался проверить количество записей в пустой таблице, программа мене выдавала ошибку "К таблице Selection нельзя обращаться как к таблице..." и хоть ты тресни...

На счет вот этого And Untitled.Au=""+NAMESC+"" Into Selection....

Ну просто зацепил лишнего из своей проги...Немножко не по теме...
Но надо заметить у меня это выражение работает...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
SergS



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

СообщениеДобавлено: Пн Сен 26, 2011 7:14 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Hirurg писал(а):

И когда я пытался проверить количество записей в пустой таблице, программа мене выдавала ошибку "К таблице Selection нельзя обращаться как к таблице..." и хоть ты тресни...

а..., ну таблица selection - очень странная таблица... Smile

можно сделать вместо "Into Selection" выражение "Into Таблица", ну или вместо таблица еще какое-либо имя. А уже потом использовать
tableinfo(Таблица, TAB_INFO_NROWS)


или еще можно так (уже с Selection):

dim st as string
.....
здесь запрос
.....

st = Selectioninfo(SEL_INFO_SELNAME)
и количество записей в выборке:
tableinfo(st, TAB_INFO_NROWS)

и совсем простое ( в случае использования именно таблицы Selection)
выражение Selectioninfo(SEL_INFO_NROWS) вернет количество записей в таблице Selection без дополнительных манипуляций.

Личный опыт:
стараюсь строить программу так, чтобы при ее выполнении не нарушалось текущее состояние среды (если этого не требует логика и цель выполнения программы). В частности, стараюсь программно не изменять текущую выборку (Selection). Для этого просто в Select-ах явно указываю имя результирующей таблицы и пользуюсь предложением Noselect. Причина - никогда не знаешь, сколько Selchangedhandler-ов в данный момент работают, и что именно они делают.
Кстати, Smile выражение
""+NAMESC+""
абсолютно едентично выражению
NAMESC
потому как, если к строке добавить пустую строку (и даже две, с двух сторон), то она не изменится.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
   Список форумов www.map-info.ru | Форум - программирование в среде MapInfo Добавить ответ
Страница 1 из 1

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


Top.Mail.Ru