Объект n_rad_connectservice
Откройте объект n_rad_connectservice из библиотеки rad.pbl, воспользовавшись окном Library. В заголовке окна вы увидите надпись - "User Object - n_rad_connectservice inherited from nonvisualobject", т.е. этот объект является потомком стандартного объекта nonvisualobject языка PowerScript.
Пользовательский невизуальный объект n_rad_connectservice используется для выполнения следующих действий:
- Получение информации о свойствах соединения с базой данных.
- Установки соединения с базой данных.
- Разрыв соединение с базой данных.
Объявление переменных
string is_connectfrom = "1" CONSTANT string IS_USE_INIFILE = "1" CONSTANT string IS_USE_REGISTRY = "2" CONSTANT string IS_USE_SCRIPT = "3"
В блоке declare окна Script художника UserObject была объявлена переменная is_connectfrom типа string и три константы, которые определяют тип получения информации для связи с базой данных - из ini-файла, registry и скрипта соответственно.
Событие constructor
Скрипт события cunstructor объекта n_rad_connectservice, который был создан художником Start Wizard:
string ls_dbms, ls_database, ls_userid, ls_dbpass, ls_logid, ls_logpass string ls_server, ls_dbparm, ls_lock, ls_autocommit If of_GetConnectionInfo ( ls_dbms, ls_database, ls_userid, ls_dbpass, ls_logid, ls_logpass, ls_server, ls_dbparm, ls_lock, ls_autocommit ) = 1 Then SQLCA.DBMS = ls_dbms SQLCA.Database = ls_database SQLCA.UserID = ls_userid SQLCA.DBPass = ls_dbpass SQLCA.LogID = ls_logid SQLCA.LogPass = ls_logpass SQLCA.ServerName = ls_server SQLCA.DBParm = ls_dbparm SQLCA.Lock = ls_lock Choose Case Lower ( ls_autocommit ) Case "1", "true", "on", "yes" SQLCA.AutoCommit = True Case "0", "false", "off", "no" SQLCA.AutoCommit = False Case Else SQLCA.AutoCommit = False End Choose End If
Скрипт выполняет следующие действия
- Объявление локальных переменных.
- Вызов метода of_GetConnectionInfo для получения информации о свойствах соединения.
- Установка свойств стандартного объекта SQLCA для связи с базой данных.
Очевидно, что переменные в метод of_GetConnectionInfo были переданы по ссылке, т.е. в процессе выполнения метода были изменены их значения. Язык PowerScript позволяет передавать параметры в методы, как по значению, так и по ссылке.
Функция of_getconnectioninfo
Нажмите кнопку Show/Hide Prototype окна Script художника User Object. Будет открыто окно с описанием метода of_getconnectioninfo. Перечислим некоторые параметры методов:
- Access - доступ к методу. Может принимать значения:
- Public - неограниченный доступ.
- Private - доступ только из самого объекта и унаследованных от него объектов.
- Protected - доступ только из данного объекта.
- Return type - возвращаемое значение.
- Pass by - способ передачи параметра, по значению (value), по ссылке (reference), только для чтения (readonly).
Скрипт функции достаточно длинный, и не имеет смысла приводить его полностью. В зависимости от способа передачи параметров соединения (переменная is_connectfrom, объявленная в описании переменных объекта), параметры беруться из ini-файла, registry или скрипта сответственно. В нашем примере они беруться из ini-файла rad.ini и присваиваются переменным, переданным по ссылке.
Для каждого из вариантов передачи параметров используются соответствующие функции. Получить описание стандартной функции, оператора, параметра и т.п. можно, установив курсор в любое место искомого слова в тексте скрипта и нажав комбинацию клавиш Ctrl-F1. Если в описании есть такое слова, будет раскрыт соответствующий раздел помощи.
Функция of_connectdb
Connect using SQLCA; If SQLCA.SQLCode <> 0 Then MessageBox ("Cannot Connect to Database", SQLCA.SQLErrText ) End If Return SQLCA.SQLCode
Скрипт выполняет следующие действия
- Cоединение с базой данных. Т.к. в данном случае используется стандартный объект SQLCA, "using SQLCA" можно было опустить.
- Проверка кода возврата SQLCode.
- Если код возврата не равен нулю, произошла ошибка соединения, необходимо открыть модальное окно с сообщением об ошибке. В качестве сообщения об ошибке используется сообщение, возвращаемое производителем базы данных.
- Возврат значения SQLCode.
Функция of_disconnectdb
Disconnect using SQLCA; If SQLCA.SQLCode <> 0 Then MessageBox ("Cannot Disconnect to Database", SQLCA.SQLErrText ) End If Return SQLCA.SQLCode
Скрипт выполняет следующие действия
- Разрыв соединение с базой данных. Т.к. в данном случае используется стандартный объект SQLCA, "using SQLCA" можно было опустить.
- Проверка кода возврата SQLCode.
- Если код возврата не равен нулю, произошла ошибка соединения, необходимо открыть модальное окно с сообщением об ошибке. В качестве сообщения об ошибке используется сообщение, возвращаемое производителем базы данных.
- Возврат значения SQLCode.