ЖУРНАЛ «СТА» №4/2006

Вопрос 3 Для архивирования событий и тревог ис- пользуется база данных MS Access. Пе- риодически требуется выполнять опера- цию сжатия базы данных для освобож- дения неиспользуемого дискового про- странства с помощью операции Сервис – Сжать базу данных MS Access. Можно ли выполнять это действие автоматически? Ответ Да, можно. Для этого необходимо написать небольшой сценарий VBA, выполняющий эту операцию. Запус- каться сценарий может по нажатию кнопки в экранной форме, периоди- чески с помощью ScriptWorX32, а так- же в зависимости от какоголибо ус- ловия. Далее приведён текст этого сценария (листинг 2), но, применяя его, нужно обратить внимание на сле- дующее: 1)нельзя выполнять операцию сжатия, если база данных в данный момент используется; 2)необходимо подключить библиотеку объектов “Microsoft Jet and Replica- tion Objects 2.6 library”. Для этого в редакторе Visual Basic for Applications необходимо открыть пункт меню Tools — References и подключить библиотеку “Microsoft Jet and Repli- cation Objects 2.6”, выбрав файл SysDrive:\Program Files\ Common Files\system\ado\msjro.dll, как пока- зано на рис. 5. Вопрос 4 В главной экранной форме имеются 2 ок- на, в которые с помощью Drag-and-Drop загружается экранная форма объекта с разными настройками псевдонимов. Как можно установить этим встроенным эк- ранным формам разные значения гло- бальных псевдонимов? Выбор области темы «Компьютер», «Процесс», «Доку- мент, уровень 0» приводит к тому, что значения псевдонимов устанавливаются в окнах одинаково. Ответ Устанавливая тему глобальных псев- донимов в свойствах кнопки, загру- жающей экран объекта (рис. 6), следу- ет выбрать режим не Абсолютно , а От- носительно текущего уровня докумен- та, 0 (рис. 7). Вопрос 5 Опишите процедуру настройки GenBroker для работы с удалённых узлов по прото- колу TCP/IP. Возможна ли конфигурация, при которой сервер WebHMI и Web-сер- вер располагаются на разных машинах? Ответ Да, такая конфигурация возможна, применяется достаточно часто и рас- сматривается в приведённом далее описании. Но сконфигурировать толь- ВОП Р ОСЫ - О Т В Е Т Ы 83 СТА 4/2006 www.cta.ru Рис. 5. Подключение библиотеки "Microsoft Jet and Replication Objects 2.6" Рис. 4. Сохранение файла локальных псевдонимов в формате Unicode Sub CompactDB(o As GwxPick) On Error GoTo ErrorHandler Dim jtEngine As New JRO.JetEngine Dim strSource As String, strDest As String Dim strTempMDBFileName As String strMDBFileName = ”C:\Documents and Settings\alexander\My Documents\db1.mdb” strTempMDBFileName = strMDBFileName & ”TMP” strSource = ”Provider=Microsoft.Jet.OLEDB.4.0;” & ”Password=””””;User ID=Admin;Data Source=” & strMDBFileName & ”;Mode=ReadWrite;” strDest = ”Provider=Microsoft.Jet.OLEDB.4.0;” & ”Password=””””;User ID=Admin;Data Source=” & strTempMDBFileName & ”;Mode=ReadWrite;” jtEngine.CompactDatabase strSource, strDest Set jtEngine = Nothing FileCopy strTempMDBFileName, strMDBFileName Exit Sub ErrorHandler: MsgBox “Произошла ошибка, изменения в файл не вносились” End Sub Листинг 2

RkJQdWJsaXNoZXIy MTQ4NjUy