Сайт ооо karasoft design

Таблиці MapInfo Professional. Будова. Типи даних.

Для початку, щоб знати, з чим нам доведеться працювати, розберемо поняття «таблиця MapInfo». Таблиця, як відомо, складається з колонок і рядків, або, кажучи мовою програмістів - ПОЛІВ і ЗАПИСІВ відповідно. Кожен запис може містити графічний об'єкт, наприклад, пряму лінію, точку або область. MapInfo також підтримує растрові таблиці, які містять тільки зображення і не має записів і полів. Трохи відкриємо речі, як правило, приховані від звичайного рядового користувача.
Фізично, на диску, таблиця представляє собою кілька файлів з даними MapInfo. У «спокійному стані», коли таблиця не відчинені в MapInfo, не використовує спеціальних індексів і при створенні для неї включена можливість містити малюнки, вона являє собою набір з чотирьох файлів з розширеннями DAT, ID, MAP і TAB. Перші три файли містять службову двійкову інформацію, описувати і чіпати їх тут ми не будемо. Зупинимося на файлі TAB-типу. Цей файл текстовий, містить описувач таблиці, наприклад:

table
!version 300
!charset WindowsCyrillic

Definition Table
Type NATIVE Charset "WindowsCyrillic"
Fields 5
ID Integer;
ObjNodeNum Integer Index 1;
ObjectName Char (150);
X Float;
Y Float;

Зі змісту випливає, що це таблиця, зазначений формат версії MapInfo при створенні таблиці (100 - більш ранні, 300 - починаючи з 3-й версії), charset визначає кодування символів в таблиці.
Далі, визначення (definition table) повідомляє про тип таблиці (NATIVE - формат обміну MapInfo, DBF - формат dBASE та інших сумісних баз даних і т.д.), кодування символів, кількість полів (Fields 5) - 5 полів. Після цього слід описатель самих полів - ім'я поля, тип даних поля, при необхідності - його розмірність (при строковому типі, наприклад) і інформація про індексування поля.
Створення таблиці Ви виробляєте за допомогою пунктів меню «Нова таблиця» - «Створити», зміна структури (опису полів) наявної (і відкритої в даний момент) таблиці за допомогою пункту «Таблиця» - «Змінити» - «Перебудувати» головного меню MapInfo. За допомогою наведеного нижче вікна розберемо типи даних в таблицях MapInfo. Ці знання нам обов'язково потрібні надалі.

Сайт ооо karasoft design

Поле служить для опису колонки в таблиці, тобто присвоєння типів і розмірів даних, що містяться в цій колонці. Доступні типи даних:

Символьне (Char (n)) - символьне поле, для зберігання текстової інформації. При створенні необхідно додатково вказати розмірність поля (максимальну довжину збереженої рядки). Для таблиць MapInfo максимально доступно зберігання 254 символів в одному символьному полі;

Ціле (Integer) - ціле число від -2147483647 до +2147483647 включно;

Коротке ціле (SmallInt) - коротке ціле число від -32767 до 32767 включно;

Речовий (Float) - дробове число (число з плаваючою комою);

Десяткове (Decimal (n, m)) - дробове число, у якого можна жорстко вказати кількість знаків після коми, зручно для грошового уявлення, наприклад;

Дата (Date), Час (Time), Дата / час (DateTime) - поля для зберігання різних часових величин;

Логічне (Logical) - поля для зберігання логічних величин, може містити значення T ( «True») - «істина», або F ( «False») - «брехня».

table
!version 300
!charset WindowsCyrillic

Definition Table
File "10 + 4.tif"
Type "RASTER"
(4000,11000) (0,0) Label "Точка 1",
(5000,11000) (5904,0) Label "Точка 2",
(5000,10000) (5904,5904) Label "Точка 3",
(4000,10000) (0,5904) Label "Точка 4"
CoordSys NonEarth Units "m"
Units "m"

Відносно растрової таблиці скажу, що допустимо змінювати «вручну» назва файлу самого растрового зображення і координати реєстрації, робити це іноді доводилося, зокрема для прискорення виведення на друк однаково оформлених звітів, але з різними підкладеними растрами. У описувач ж стандартної таблиці краще не вносити зміни, швидше за все, буде видана помилка при спробі відкрити змінений описатель NATIVE-формату.
Ви повинні знати, що після виконання запиту, при отриманні ненульовий вибірки всі дані копіюються в спеціальну таблицю Selection. Це, по суті, результат Вашого запиту. Крім того, якщо був включений висновок результату запиту в список, таблиця Selection дублюється в автоматично створюваних таблицях з іменами Query__ з числовими індексами в кінці. У цих таблицях буде зберігатися історія результатів Ваших попередніх запитів, а таблиця Selection буде містити тільки результат останнього запиту. Це теж треба запам'ятати.
Таблиця може бути отримана шляхом імпорту з інших форматів. Порада: при імпорті з DXF-формату - перед імпортом файл DXF повинен бути збережений з типом AutoCAD R12 / LTL2 DXF. Крім того, при зворотному експорті в DXF-формат, щоб уникнути подальших помилок я рекомендую проводити попередню упаковку товарів, що експортуються таблиць для остаточного знищення раніше видалених записів.

У наступній статті постараюся докладно освятити питання створення різних вибірок даних в таблицях карти стандартними засобами MapInfo, використовуючи доступні оператори та функції MapBasic.

З повагою і успіхів Вам!
Карасів Андрій.