Была у меня небольшая программка которая сортировала точки по координате Х Код: sel_region = CommandInfo(CMD_INFO_CUSTOM_OBJ) ' запоминаем выбранный регион win_name = FrontWindow() ' верхнее окно layer_id = 1 ' 1й слой карты tab_start = LayerInfo(win_name, layer_id, LAYER_INFO_NAME) ' его имя Set CoordSys Table tab_start ' работаем с сист.коор из tab_start Select col1,centroidX(obj),centroidY(obj) From tab_start Where sel_region Contains obj into tab_temp Order By 2 ' выбрать из tab_start объекты попадающие в sel_region, сортировать по X, записать в tab_temp и вдруг она мне теперь пишет: Результатом выражения не является имя колонки или таблицы. Может кто знает чё это она, а?
ну если еще актуально, то: 1. При запросе данных из таблицы, определять лучше имя таблицы а не слоя (вместо LayerInfo() использовать TableInfo()). 2. При сортировке записей в таблице (Order By) необходимо указывать имя, а не номер колонки.
До сих пор актуально... Все никак не разберусь в чем причина пока поменял только определение выбранной таблицы Код: win_name = FrontWindow() ' верхнее окно layer_id = 1 ' 1й слой карты tab_start = LayerInfo(win_name, layer_id, LAYER_INFO_NAME) ' его имя на такой Код: tab_start=SelectionInfo(SEL_INFO_TABLENAME) а что менять в запросе Select --- Сообщения объединены, 23 июн 2017, Оригинальное время сообщения: 23 июн 2017 --- если расписать запрос так Код: Select col1,centroidX(obj),centroidY(obj) From tab_start Where sel_region Contains obj into tab_temp Order By 2 то ругается на Order By, как его правильно записать? col2 тоже не работает, а имя колонки я не знаю
Код: Select col1,centroidX(obj) "oX",centroidY(obj) From tab_start Where sel_region Contains obj into tab_temp Order By oX
что то нет, не хочет, пойду mapinfo переустановлю и вернул способ выбора имени таблицы, ото там надо сначала точки выделять --- Сообщения объединены, 23 июн 2017, Оригинальное время сообщения: 23 июн 2017 --- ничего не помогает, раньше работала как часы, а теперь только ошибки выдает mapinfo 12.5. mapbasic был 11.5 сейчас 12.5 вернул 11.5 никаких изменений вот файл может кто посмотрит, что там не так
Мапбэйсик коварен)) в коде, в tab_temp нужно убрать подчеркивание и написать например tabtemp. Возможно в каких то версиях мапинфо работает с подчеркиванием не знаю. Я в коде все поменял у меня заработало. Интересная прога кстати!
У вас теперь вот в чем проблема... В строке 9 Global tab_start,tab_dir,tab_temp as String, по всей видимости вы тоже убрали подчеркивание. Работать не будет, потому что имя таблицы не нужно объявлять как строковую переменную. должно быть просто Global tab_start,tab_dir as String. А мапинфо автоматически создает таблицу с заданным именем во время работы оператора selection ..... into. То есть таблица не является переменной. Почему ранее работало - неизвестно, может быть зависит от версии мапинфо или разрядности виндовс.
Все!!! наконец заработало!!! Да, я бы до этого не додумался. Подчеркивания в итоге на работу не влияют, а название переменной я скорее всего внес позже, когда появилась какая то очередная ошибка.