Страница 1 из 1
Доступ к таблице!?!
Добавлено: 11 мар 2009, 15:11
pogoreli
Дорогие друзья, объясните ситуацию использую такой код:
Код: Выделить всё
Create Table Temp_Table_Point ' Создаем временную таблицу
( Поля Char(30),
номер SmallInt)
File str_name_of_copy
' затем делаю такую процедуру
Create Map For Temp_Table_Point ' Делаем картой
CoordSys Earth
Add Map Auto Layer Temp_Table_Point 'Добавляем к открытым
И вот тут начинается... не могу найти закономерность, но то этот код работает нормально, то выдает что таблица Temp_Table_Point СОЗДАНА ТОЛЬКО ДЛЯ ЧТЕНИЯ

, ничего не могу понять использовать, Commit Table на это же имя таблицы нельзя хотя слышал что сохранение копии спасает. Рожать кучу таблиц для этого не грамотно. Иногда все прокатывает и работает отлично. Если это фишка только моего MapInfo то посоветуйте что-нибудь...

Спасибо
Re: Доступ к таблице!?!
Добавлено: 11 мар 2009, 15:55
Boris
Я вижу вы решили плотно заняться программированием в MapBasic'е. Поэтому, я позволю себе следующие замечания:
1. Если нет, то попросите и обрящите не только help к вашей версии, но и Reference Guide и User Guide, часто написаны те обходные пути, которые требуются при программировании с этой "живопыркой".
2. В MB есть специальная функция получения уникального имени временного файла TempFileName$( ), по странному совпадению она же дает имя для временной таблицы, которое гарантировано ни с каким отрытым именем не пересечется.
3. Закрывайте таблицы после окончания их использования. Даже если будете использовать это имя повторно. В MI Есть ограничение на количество открытых файлов, не исключено, что вы его превысили.
4. Порождая окна, не забывайте закрывать и их, ведь их число то же конечно.
5. Создавая таблицу, присваивая ей координатную систему - сразу же сохраняйте. В противном случае у вас копятся таблицы открытые для редактирования, число таблиц открытых для редактирования еще меньше, чем число открытых файлов.
6. Таблица может быть открытой только для чтения в следующих случаях:
- она блокирована тем, что имеется не завершенное "рисование" в одном из окон
- один из файлов таблицы получил атрибут "только для чтения", причем любой из 5-файлов, из которых состоит таблица MapInfo
- открыта только для чтения
- внутренний сбой или переполнение программы
- и много другое
- ... в частности закончилось место в папке TEMP или TMP операционной системы
Re: Доступ к таблице!?!
Добавлено: 12 мар 2009, 07:53
pogoreli
Boris, благодарю за помощь, замечания ваши очень полезны, как раз являются тем философским намеком по использованию MB. Считаю программирование вообще искусством, поэтому так скурпылезно и надоедливо разбираюсь в непонятных мне вещах этой "живопырки".