pryg
Зарегистрирован: 19.10.2011 Сообщения: 1
|
Добавлено: Пн Ноя 07, 2011 3:11 pm Заголовок сообщения: Непонятки с синтаксисом MapBasic-а |
|
|
Получаю список полей в таблице, через запятую, предварительно вставляю вперёд будущее новое поле:
sListField = "Код," + MakeColList$(gsCurTable,sDelim)
Где MakeColList$, доступна в MISTDLIB в сэмплах.
sListField - точно строка, через запятую с именами полей.
Далее меняю таблицу
Alter Table gsCurTable (
Add Код Char(5)
Order sListField
) Interactive
При выполнении пишет ошибку:
"Результатом выражения не является имя колонки или таблицы. Название поля должно состоять из букв..." и т.д.
Как вот быть? Если писать:
Order Код,Наименование,...
Прокатывает, но смысл в том, что пользователь выбирает таблицу из списка и программа добавляет поля автоматом, какие вздумается пользователю.
Ка вот нормаль вставить в ордер строку в виде переменной?
Ладно, предположим отказались от сортировки полей, после Alter Table, слой с таблицей закрывается.
Открываем его обратно, и пытаемся вернуть ему сохранённые заранее настройки.
Скажем было Два параметра:
iLayInfoDisplay = LayerInfo(giWindowID, iNumCurLay, LAYER_INFO_DISPLAY)
sLayInfoGSymbol = LayerInfo(giWindowID, iNumCurLay, LAYER_INFO_OVR_SYMBOL)
iLayInfoDisplay будет равно 2, а LayInfoGSymbol выглядит вообще как строка "Symbol ("<filename>",0,24,0)".
Вроде то что надо. Пытаемся впехнуть это в Set Map
Открываем слой:
Add Map Window giWindowID Auto Layer gsCurTable
Далее пытаюсь выполнить:
Set Map
Display iLayInfoDisplay
Global sLayInfoGSymbol
Оно даже не компилируется.
Пишет гадости типа: "Missing '=' in assignment to iLayInfoDisplay."
Как вот тогда вернуть слой на место, если его отрубает после, изменения структуры таблицы.
Может я чего-то не понимаю в этом бейсике?
Подскажите пожалуйста правильный подход? |
|