Страница 1 из 1

Добавление полей в Mapinfo

Добавлено: 29 июн 2016, 09:33
Kostilio
Добрый день! Подскажите пожалуйста.
Имеется множество таблиц и нужно добавить к ним несколько колонок с одинаковым именем (тип - символьное, определенное число знаков в каждой). В ручную получается так: таблица - изменить - перестроить - добавить поле. Можно как-то добавить одни и те же поля в несколько таблиц сразу?

Re: Добавление полей в Mapinfo

Добавлено: 29 июн 2016, 09:40
trir
OGR

Re: Добавление полей в Mapinfo

Добавлено: 29 июн 2016, 15:28
Boris
Можно, вопрос в том что вы имеете в виду употребляя "сразу". Указанные действия требуют либо элементарного программирования, либо использования командной строки в цикле. Самый очевидный способ открыть все требуемые таблицы в MapInfo и запустить цикл по ним в бесплатном MapBasic'е. Можно даже программу не создавать не сохранять. Вот таких строк будет достаточно:

Код: Выделить всё

dim table_id as Integer,Nm as String,N as Integer
	N=NumTables( )
	for table_id=1 to N
		Nm=TableInfo(table_id,TAB_INFO_NAME )
		Alter Table Nm ( add newField2 Char(40) )
	next
Ниже код на MB для MapInfo
addFlds.7z
(732 байт) 221 скачивание

Re: Добавление полей в Mapinfo

Добавлено: 29 июн 2016, 16:56
Kostilio
Boris
Спасибо большое, работает. А не подскажете, как изменить код, чтобы добавлялось несколько колонок?

Re: Добавление полей в Mapinfo

Добавлено: 29 июн 2016, 17:59
Boris
В MapInfo есть один маленький секрет, делающий эту программу недостижимо дружелюбной в части автоматизации по сравнению со всеми остальными пакетами:
если открыть окно MapBasic, то 95% команд, которые вы выполните "руками" будут отображены в этом окне в виде команд MapBasic'а. Все что нужно - это скопировать команды в цикл. Я всегда так делаю, и только после того как получу команды захожу в руководство по MB, что бы убедиться, что я верно их интерпретировал.
Единственный минус, который есть у окна MB, это то, что в нем нельзя выполнять циклы и условные операторы. :cry:

Re: Добавление полей в Mapinfo

Добавлено: 29 июн 2016, 22:24
Kostilio
Спасибо за совет, буду разбираться, пока мало что понятно к сожалению. А MapBasic отдельно ставить нужно, насколько я понял?

Re: Добавление полей в Mapinfo

Добавлено: 30 июн 2016, 01:16
Boris
Да, вроде нет. С версии 9.хх, по моему, он сам ставится в комплекте. И я говорил не про сам MB- отдельную программу, а про окно MB внутри MapInfo, в которое MapInfo выводит команды, которые выполняет, когда вы тыкаете в кнопки или выбираете команды меню:
Clipboard013.jpg
Clipboard013.jpg (29.98 КБ) 4830 просмотров
Clipboard012.jpg
Clipboard012.jpg (18.97 КБ) 4830 просмотров