Class CODBDEPOSITORY

Name

CODBDEPOSITORY  --  Суть этого CODB класса - хранилище объектов, чья структура описана в словаре.

Synopsis

 coDepositioryNew(<sDictID>, <sUser>, <sPasswd>) --> CODBDEPOSITORY object
 coDepository:New(<sDictID>, <sUser>, <sPasswd>)  --> CODBDEPOSITORY object

Description

Суть этого CODB класса - хранилище объектов, чья структура описана в словаре.

Attributes

<ClassName> CODBDEPOSITORY
<Error> String, описание ошибки, возникшей при выполнении последней операции.
  

Methods

APPEND Добавить объект в хранилище.
CHECKBODY Проверить объект на принадлежность к классу.
CLOSE Закрыть открытые файлы.
CREATE Создать пустой депозитарий.
DELETE Удалить объект из хранилища.
GETVALUE Получить объект из хранилища.
ID4PRIMARYKEY Вернуть идентификатор объекта.
IDLIST Вернуть объект класса IDLIST.
NEW Инициализация нового объекта CODBDEPOSITORY.
OPEN Открыть все необходимые файлы.
PADRBODY Привести объект в соответствие классу.
SELECT Вернуть список идентификаторов выбранных объектов.
UPDATE Обновить объект в хранилище.

Method CODBDEPOSITORY:APPEND()

 Append(<oData>, <sClassID>) 	--> <sDataID>

Append() добавляет новый объект <oData> в хранилище как объект класса <sClassID> и возвращает идентификатор зарегистрированного объекта <sDataID>.

<::Error> содержит описание ошибки, если таковая произошла.

Method CODBDEPOSITORY:CHECKBODY()

 CheckBody(<oData>, <sClassID>) 	--> <oData>

CheckBody() проверяет объект <oData> на принадлежность к классу <sClassID> и при необходимости заполняет атрибуты <oData> значениями по умолчанию.

<::Error> содержит описание ошибки, если таковая произошла.

Method CODBDEPOSITORY:CLOSE()

 Close() 	--> TRUE || FALSE

Open() закрывает все необходимые для работы словаря файлы или соединение с SQL сервером.

Method CODBDEPOSITORY:CREATE()

 Create() 	--> TRUE || FALSE

Create() возвращает TRUE если создан пустой новый депозитарий. Обычно, этот метод не требует прямого вызова, а вызывается автоматически при добавлении нового словаря в CODBDICTIONARY.

<::Error> содержит описание ошибки, если таковая произошла.

Method CODBDEPOSITORY:DELETE()

 Delete(<sDataID>) 	--> TRUE || FALSE

Delete() удаляет объект с идентификатором <sDataID> из депозитария.

<::Error> содержит описание ошибки, если таковая произошла.

Method CODBDEPOSITORY:GETVALUE()

 GetValue(<sDataID>) 	--> <oData>

GetValue() достает из депозитария и возвращает объект <oData> с идентификатором <sDataID>.

<::Error> содержит описание ошибки, если таковая произошла.

Method CODBDEPOSITORY:ID4PRIMARYKEY()

 Id4PrimaryKey(<sClassName>, <sKeyName>, <KeyValue>) 	--> <sDataID>

Id4ProperyKey() возвращает <sDataID> - идентификатор найденног объекта, у которого свойство с именем <sKeyName> равно <KeyValue>.

Method CODBDEPOSITORY:IDLIST()

 IdList(<sClassID>[, <nOrder>][, <sName>][, <sWhere>]) 	--> <oIDList>

IdList() возвращает <oIDList> - объект класса IDLIST.

Method CODBDEPOSITORY:NEW()

 New(<sDepID>, <sUser>, <sPasswd>) --> CODBDEPOSITORY object

New() инициализирует новый объект CODBDEPOSITORY возвращает его.

Если объект <sDepID> уже существует, New() открывает и возвращает этот депозитарий.

Method CODBDEPOSITORY:OPEN()

 Open() 	--> TRUE || FALSE

Open() открывает все необходимые для работы словаря файлы или соединение с SQL сервером.

<::Error> содержит описание ошибки, если таковая произошла.

Method CODBDEPOSITORY:PADRBODY()

 PadrBody(<oData>, <sClassID>) 	--> <oData>

PadrBody() приводит объект <oData> в соответствие классу <sClassID>.

<::Error> содержит описание ошибки, если таковая произошла.

Method CODBDEPOSITORY:SELECT()

 Select(<sClassID>[, <nOrder>][, <sName>][, <sWhere>]) 	--> <aIdent>

Select() возвращает список идентификаторов объектов, принадлежащих классу <sClassID> в порядке <nOrder>, у которых аттрибут <Name> точно равен <sName> и содержимое аттрибутов соответсвует выражению <sWhere>.

<::Error> содержит описание ошибки, если таковая произошла.

Method CODBDEPOSITORY:UPDATE()

 Update(<oData>) 	--> TRUE || FALSE

Update() обновляет объект <oData> в хранилище. Если депозитарий не содержит объект с идентификатором <oData:ID>, Update() возвращает FALSE.

<::Error> содержит описание ошибки, если таковая произошла.

Example:

 * open first depository from MY001
 oDep:=coDepository():new("MY00101")
 oDep:open()
 oDict:=oDep:dictionary()
 * get currency metadata
 currBody:=oDict:classBodyByName("currency")
 if empty(currBody)
 ? "Class 'currency' not found in dictionary"
 quit
 endif
 *this data may be load from txt or dbf source file
 data:={;
 {"USD","USA dollar"},;
 {"UUU","UUU dollar"},;
 {"RUR","Russian rubl"},;
 {"RUA","Ukraina rubl :)"};
 }
 * add currency objects
 for i=1 to len(data)
 obj:=map()
 obj:code := data[i][1]
 obj:name := data[i][2]
 obj_id := oDep:id4primaryKey("currency","code",obj:code)
 if empty(obj_id)
 oDep:append(obj,currBody:id)
 else
 /* object exist in depository */
 obj:id := obj_id
 oDep:update(obj)
 endif
 if !empty(oDep:error)
 ? "Error:",oDep:error
 else
 ? "currency object '"+obj:code+"' added to depository"
 endif
 next
 ? "To depository added ",len(data)," objects"
 c_list:=oDep:select(currBody:id,,,'code="U"')
 ? "Select currency objects with code='U':",c_list
 c_list:=oDep:select(currBody:id)
 ? "Select all currency objects:",c_list
 ? "Loading objects body:"
 for i=1 to len(c_list)
 obj:=oDep:getValue(c_list[i])
 ? "code=",obj:code, "name=",obj:name
 next
 

See also

CODBLIST

Platforms

No dependies of platform.