Концепция работы клиента Ultima-S с сервером через объектный протокол обмена

Клиент (Ultima-S.exe) работает исключительно через объектный протокол обмена. Приведем его типичные действия, ниже описаны таблицы объектного протокола.

Действие Вызов API процессора событий с клиента Рассылаемое событие процессором Примеры хранимых процедур сработавших как обработчики события ('Doc' – базовый класс) Используемая таблица для обмена данными между клиентом и сервером
Получить список объектов в ветке дерева exec FillTree @Folder Обрабатывается ядром, ядро читает структуру из Docs, также обрабатывает фильтрующие папки и колонки дополнительной информации об объектах Tree
Получить свойства объекта exec GetProperties @UDN getp edit_getp_Doc_

edit_getp_MyClass_

Properties
Создать новый объект класса MyClass и получить его пустую форму exec GetSchema 'MyClass' gets edit_gets_Doc_

edit_gets_MyClass_

Detailed
Вызвать объект на редактирование (получить форму с данными) exec DoDetail @UDN, 'edit' edit edit_read_Doc_

edit_read_MyClass_

Detailed
Записать объект exec PutDown @UDN put edit_put_Doc_

edit_put_MyClass_

Detailed

 

Подробное описание таблиц обмена будет приведено в последующих публикациях.

Таблица для обработки дерева объектов

CREATE TABLE #Tree (

u int,

No smallint,

Typ smallint,

ClassName varchar (32),

UDN int,

Stamp binary (8),

Dat datetime NULL,

Number varchar (128) NULL,

Name varchar (255) NULL

)

GO

Таблица для обработки свойств объекта

CREATE TABLE #Properties (

u int,

No smallint,

ProcName varchar (32),

Name varchar (128),

Flag smallint

)

GO

 

Таблица для обработки форм (данных) объекта

CREATE TABLE #Detailed (

u int,

UDN int,

No int,

Lev smallint,

ValueId varchar (32),

ValueFormat varchar (255),

ValueType smallint,

IntValue int NULL,

StringValue varchar (255) NULL,

DateValue datetime NULL,

FloatValue float NULL,

MoneyValue money NULL,

IntOld int NULL,

StringOld varchar (255) NULL,

DateOld datetime NULL,

FloatOld float NULL,

MoneyOld money NULL,

AccMode smallint,

Recycable smallint,

Stamp binary (8) NULL,

ChangeMode smallint NULL,

DocName varchar(128) null,

DocClass varchar(32) null

)

GO