Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MB_REF_7.pdf
Скачиваний:
25
Добавлен:
13.02.2015
Размер:
2.96 Mб
Скачать

Оператор Commit Table

Оператор Commit Table

Назначение:

Сохраняет последнюю редакцию таблицы на диске или сохраняет ее копию.

Access добавлен к тем типам таблиц, которые могут редактироваться в MapInfo, также как и “родные” (Native) таблицы и таблицы DBF. Если выбран тип таблицы Access, то будет затребован маршрут к базе данных. Если маршрут и/или база данных недоступны, то будет создана новая база данных. К таблице в Access будет добавлена колонка MAPINFO_ID.

Синтаксис:

Commit Table table

[ As filespec

[ Type { NATIVE |

DBF [ Charset char_set ] |

Access Database database_filespec [ Version version ] Table tablename

[ Password pwd ] [ Charset char_set ] | QUERY

} ]

ODBC Connection ConnectionNumber Table tablename

[ CoordSys... ]

[ Version version ] ]

[ { Interactive | Automatic commit_keyword } ]

table имя таблицы, которую Вы сохраняете.

filespec спецификация файла (включая DOS0маршрут). Это то место, где сохраняется файл

.TAB.

version выражение, определяющее версию базы данных Microsoft Jet database format используемую для новой базы данных. Допускаются значения 4.0 (для Access 2000) или 3.0 (для Access ’95/’97). Если выражение пропущено, то по умолчанию используется версия 4.0. Если база данных, в которой создается таблица уже существует, то определение версии базы данных игнорируется

char_set имя строковой переменной; см. раздел, посвященный функции CharSet.

database_filespec строка, которая определяет имя и DOS0маршрут к доступной базе данных Access. Если такая база не существует, MapInfo создаст новый Access0файл .MDB.

tablename строковая переменная, определяющая имя таблицы, которая появится в Access.

pwd пароль на уровне базы данных, определяемый при включении защиты базы данных.

ODBC определяет копию Table которая сохраняется в базе данных, определенной номером удаленного соединения ConnectionNumber.

ConnectionNumber целое значение, номер соединения с базой данных.

tablename строковая переменная, определяющая имя таблицы, которая появится в Access.

CoordSys система координат; см. подробнее раздел CoordSys.

version величина от 100 (для таблиц, которые могут читаться ранними версиями MapInfo) до 300 (MapInfo 3.0 формат), для не0Access таблиц. Для таблиц Access, версия должна быть 410.

Справочник MapBasic

85

Оператор Commit Table

commit_keyword одно из следующих ключевых слов:: NoCollision, ApplyUpdates,

DiscardUpdates

Описание

Если предложение As не определено, оператор Commit сохраняет любые изменения в таблице. Это аналогично команде ФАЙЛ > СОХРАНИТЬ.

Оператор Commit который включает предложение As имеет тот же самый эффект, как и команда ФАЙЛ > СОЗДАТЬ КОПИЮ. Предложение As может быть использовано для сохранения таблицы под другим именем, в другом месте, или в виде другого типа файла, проекции.

Для сохранения таблицы под новым именем, укажите новое имя в строковой переменной filespec. Для сохранения таблицы в другом месте, укажите путь в начале строковой переменной filespec.

Для сохранения таблицы как файла нового типа, включите предложение Type внутри предложения As. По умолчанию, тип новой таблицы NATIVE, но она также может быть сохранена как DBF.

Предложение CharSet определяет установку шрифта. Параметр char_set должен быть строковой константой, такой как “MacRoman” или “WindowsLatin1”. Если предложение

CharSet не определено, MapBasic использует по умолчанию тот шрифт, который установлен в Windows в это время. См. так же предложение CharSet для большей информации.

Для сохранения таблицы с использованием других систем координат или проекций, включите предложение CoordSys в предложение As. Обратите внимание, что только геокодируемые таблицы могут иметь систему координат и проекцию.

Для сохранения запроса используйте тип таблицы QUERY. Может быть сохранен только запрос сделаный пользователем через интерфейс и запрос, созданный оператором Run Command в MapBasic. Оператор Commit Table создает файлы .TAB и .QRY.

Предложение Version контролирует формат таблицы. Если Вы укажите Version 100, MapInfo сохранит таблицу в формате, читаемом ранними версиями MapInfo. Если Вы укажите Version 300, MapInfo сохранит таблицу в формате, используемом MapInfo 3.0. Обратите внимание, что объекты типа полилиния и регион, имеющие более 8,000 узлов и полилинии, состоящие из множества сегментов требуют версию 300. Если Вы пропустите предложение Version, то таблица сохранится в формате версии 300.

Внимание: Если приложение MapBasic использует оператор Commit Table...As действующий на таблицу у которой есть memo0поля, то эти memo0поля не сохранятся в новой таблице. Предупреждение об этом на экране не будет. Если таблица сохраняется в виде новой таблицы с помощью команды MapInfo (ФАЙЛ > СОЗДАТЬ КОПИЮ), то MapInfo предупредит пользователя о потере memo полей. Таким образом, при сохранении новой таблицы через программу MapBasic, предупреждения не будет.

Сохранение связанных таблиц

Сохранение связанной таблицы может породить конфликт, поскольку другие пользователи могут редактировать РСУБД. Следующие предложения позволят Вам контролировать то, что может произойти при конфликте. (Эти предложения не действуют при сохранении обычной таблицы MapInfo).

Interactive

86

Справочник MapBasic

Оператор Commit Table

В случае конфликта, MapInfo показывает диалог “Разрешение конфликтов”. После успешного выполнения оператора Commit Table Interactive, MapInfo показывает диалог обновления.

Automatic NoCollision

В случае конфликта, MapInfo не выполняет сохранение. (Этот режим используется по умолчанию, то есть в случае, если не используются предложения Interactive или Automatic.)

Automatic ApplyUpdates

В случае конфликта, MapInfo сохраняет значения локальной копии связанной таблицы. (Это аналогично полному игнорированию конфликта.)

Automatic DiscardUpdates

В случае конфликта MapInfo сохраняет значения из РСУБД (локальные изменения отменяются).

Вы можете сохранить копию связанной таблицы, используя предложение As; но, полученная в результате таблица не будет связанной и не может быть обновлена с сервера.

Оператор ODBC Connection

Длина имени таблицы tablename варьирует в зависимости от базы данных. Мы рекомендуем применять 14 или менее символов для имени таблицы, в этом случае гарантирована корректная работа с любой базой данных. В операторе установлена максимально возможная длина имени файла 0 tablename, равная 31 символ.

Если используется предложение AS и ODBC это Type, то копия таблицы будет сохранена в базе данных, указанной номером соединения ConnectionNumber а имя таблицы будет tablename. Если исходная таблица имеет географические объекты, то к таблице tablename, создаваемой в удаленной базе, могут быть добавленыс три колонки Key, Object и Style, независимо от того, есть такие колонки в исходной таблице или нет. Если исходная таблица без географических объектов, то только одна колонка, Key, может быть добавлена к таблице базы данных, tablename, независимо от того, была ли такая колонка в исходных данных. Колонка Key будет использоваться для создания уникального индекса.

Пространственный индекс будет создаваться в колонке Object, если она есть. Неподдерживаемые типы объектов не будут сохраняться в создаваемой таблице, но часть их аттрибутов будет сохранена. Поддерживаемые базы данных это Oracle, SQL Server, IIS (Informix Universal Server) и Microsoft Access. Таким образом, для сохранения таблицы с пространственной геометрией/объектами (включая сохранение таблицы только с точечными объектами), для SQL Server и IUS потребуется SpatialWare/Blade, в дополнение к пространственным настройкам для Oracle. Схема XY не поддерживается в этом операторе.

Пример

Следующий пример открывает таблицу STATES, затем использует оператор Commit чтобы сделать копию этой таблицы под новым именем (ALBERS). Необязательное предложение

CoordSys приводит к тому, что таблица ALBERS сохранится с равноплощадной проекцией

Альберта.

Open Table ”STATES”

Commit Table STATES

As ”ALBERS”

CoordSys Earth

Projection 9,7, ”m”, 96.0, 23.0, 20.0, 60.0, 0.0, 0.0

Справочник MapBasic

87

Оператор Commit Table

Следующий пример иллюстрирует слединение с удаленной базой данных:

dim hodbc as integer

hodbc = server_connect("ODBC", "dlg=1") Open table "C:\MapInfo\USA"

Commit Table USA

as "c:\temp\as\USA"

Type ODBC Connection hodbc Table "USA"

Смотрите также

Rollback

88

Справочник MapBasic

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]