Переменные и типы данных

Переменные используются для хранения данных. Переменные в программе представляются с помощью идентификатооров. Идентификатор должен состоять из символов, допустимых для язака, на котором создается программа. Тип переменной определяется типом хранимых в ней данных и может автоматически изменеяться во время присвоения нового значения.
Особым типом переменных является объектный тип, хранящий ссылку на объект, через которую можно обращаться к свойствам (данным) и методам (функциям) объекта.
В среде CityMap из кода программы постоянно доступны ряд объектов, дающих доступ к открытой карте и окну программы. Эти объекты всегда доступны из любого места программы, их нельзя удалить и переприсвоить им новое значение. К таким объектам относятся:
window - предоставляет доступ к окну программы.
Document - предоставляет доступ к открытой карте.
Описание дочерних объектов, свойств и методов можно посмотреть в среде разработки ScriptEdit в инспекторе свойств, когда в редакторе активна вкладка Код.
Переменные, объявленные внутри функции являются локальными, т.е. они видны только из кода функции, в которой были объявлены. Среда CityMap предоставляет возможность создавать глобальные переменные (видимые из любой функции программы). Для создания глобальной переменной служит метод AddVariable объекта window. Например код:
window.AddVariable("var1");
var1=5;
добавляет глобальную переменную с именем var1 и присваивает ей значение 5. После выполнения этого кода, значение переменной var1 в любой функции программы будет равно 5 до тех пор, пока ей не будет присвоено новое значение.

Таймеры

Таймеры служат для периодического вызова определенной функции. Для управления таймерами служит объект Timers, который можно получить через одноименное свойство объекта window.
Метод Add этого объекта добавляет новый таймер и возвращает его идентификатор. В качестве параметров в метод Add передается имя функции, которая будет периодически вызываться и периодичность вызова этой функции в миллисекундах. После вызова метода Add, переданная в качестве параметра функция будет выполняться периодически пока существует таймер. Остановить таймер невозможно, можно только его полностью удалить методом Delete с параметром равным идентификатору нужного таймера.

Двоичные данные

Для хранения данных произвольного формата в среде CityMap используется объект Blob. Blob -это набор данных произвольного формата. В каждый набор можно добавлять блок новых данных из файла (методом AddFromFile) из поля базы данных (метод FieldByName объекта IBDataBase), а также из карты (методом AddFromMap). Удалить данные из блоба можно только все сразу методом Clear.
Все функции добавления данных в блоб возвращают строку, содержащую адрес добавленных данных. Если этот адрес задать в качестве значения параметра src тега HTML формы, то при отображении такой формы в соответствующий тег будут загружены данные из блоба.

Небольшой пример:

//Добавляет новый блоб в коллекцию блобов
i=window.Blobs.Add();
//Добавляет в блоб изображение
//картографического объекта mapobj
//с белым фоном
addres=window.Blobs.Items(i).AddFromMap(mapobj,0xffffff);
//В HTML форму с именем Test
//добавляется тэг изображения
window.Forms.Form("Test").Code="<img src=\""+addres+"\">"

Если далее отобразить форму Test, то на ней будет показан картографический объект mapobj.
Все блобы собраны в коллекцию блобов, доступ к которой осуществляется через свойство Blobs объекта window.

Базы данных FireBird

Для доступа к базам данных FireBird (InterBase) в среде CityMap служит объект IBDataBase доступный через одноименное свойство объекта window.
При каждом обращении к этому свойству создается новый объект IBDataBase, поэтому для использования, его нужно присвоить локальной или глобальной переменной. Например:

ib=window.IBDataBase;
//Подключение к базе данных
if ( ib.Connect("server:d:\\data.gdb","user=sysdba\r\npass=dbpassword") )
{
//При успешном подключении можно выполнять запрос
ib.SQL("Текст sql запроса");
} else
{window.alert("Ошибка подключения к базе!");}
После вызова метода SQL объекта IBDataBase формируется таблица, доступ к полям текущей записи которой осуществляется методом FieldByName, который возвращает символьное представление поля с заданным именем. Если содержимое поля является двоичными данными и задан существующий блоб, то данные помещаются в этот блоб, и возвращается адрес этих данных.
Для выбора текущей записи в таблице, служит свойство RecNo.
После окончания работы с базой данных нужно выполнить отключение от нее методом Disconnect объекта IBDataBase.

Хостинг от uCoz