Инструмент поставщика данных OLE DB в «КАСКАД Цифра» позволяет осуществлять доступ к историческим данным (архивные значения) посредством внешних инструментов отчетности, которые используют OLE DB в качестве интерфейса (например, Crystal Reports, MS Excel). Кроме того, могут быть запрошены алармы. Инструмент поставщика данных был реализован в двух частях: компонент EXE (менеджер «КАСКАД Цифра») и компонент DLL.
Записи для поставщика данных OLE DB находятся в разделе [oledb]. Следующие записи поддерживаются инструментом поставщика:
«Name»
Тип
Значение по умолчанию
Диапазон
Комментарий
maxOleDbIdleTime
int
0
>=0 (max. 2147483648)
Время (в секундах), в течение которого поставщик данных работает без активных запросов, прежде чем он закроется. Поставщик данных продолжает работать с настройкой по умолчанию 0.
maxOleDbWaitAnswerTime
int
60
>=0 (max. 2147483648)
Максимальное время (в секундах) ожидания поставщика данных после отправки всех запросов в ValueArchive, для получения ответов на эти запросы. Установка значения 0 означает, что поставщик данных не будет ожидать совсем (не рекомендуется). Если время истекло, ответы, которые были получены до истечения времени, переадресуются, и в журнал отправляется сообщение об ошибке.
maxOleDbArchiveConnectTime
int
5
>0
Максимальное время (в секундах), которое поставщик данных использует для установления соединения с ValueArchive.
num
int
1
—
Номер менеджера поставщика данных OLE DB.
usePvssWildCards
bool
1
0,1
Указывает для SQL, должен ли использоваться синтаксис SQL (0) или синтаксис «КАСКАД Цифра» (1) для знаков подстановки.SQL : % = любые символы _ = любой одиночный символ»КАСКАД Цифра»: * = любые символы ? = любой одиночный символ
Записи для приоритизации запросов в архиве находятся в разделе [valarch]. Поддерживаются следующие записи:
«Name»
Тип
Значение по умолчанию
Диапазон
Комментарий
exclusiveReadThreadsForDM
int
1
0-3
Определяет, сколько потоков обрабатывают запросы от выбранного менеджера данных.
readThreadsPreferringOleDb
int
1
0-3
Определяет, сколько потоков обрабатывают запросы от выбранного OLE DB (когда DM и OLE DB делают запрос одновременно).
ПРИМЕЧАНИЕ
Сумма параметров exclusiveReadThreadsForDM и readThreadsPreferringOleDb не может быть выше трех. Если общее число потоков чтения, однако, превышает три, отображается сообщение об ошибке, но происходит запуск.
При работе с потребителем данных, который поддерживает OLE DB, типы данных «КАСКАД Цифра» преобразуются в перечисленные типы следующим образом:
«КАСКАД Цифра»
Типы данных OLE DB
struct
—
bit32
DBTYPE_UI4
bool
DBTYPE_BOOL
char
DBTYPE_UI1
float
DBTYPE_R8
int
DBTYPE_I4
unsigned
DBTYPE_I4
string
DBTYPE_BSTR
langstring
DBTYPE_BSTR (CONV.)
time
DBTYPE_DATE
typeref
—
dpid
DBTYPE_BSTR
blob
—
dyn_bool
ARRAY |DBTYPE_BOOL
dyn_int
ARRAY |DBTYPE_I4
dyn_uint
ARRAY |DBTYPE_UI4
dyn_float
ARRAY |DBTYPE_R8
dyn_string
ARRAY |DBTYPE_BSTR
dyn_langString
ARRAY |DBTYPE_BSTR (CONV:)
dyn_bit32
ARRAY |DBTYPE_UI4
dyn_char
ARRAY |DBTYPE_UI1
dyn_time
ARRAY |DBTYPE_DATE
dyn_dpid
ARRAY |DBTYPE_BSTR
dyn_blob
—
bool array
ARRAY |DBTYPE_BOOL
int array
ARRAY|DBTYPE_I4
uint array
ARRAY|DBTYPE_UI4
float array
ARRAY|DBTYPE_R8
string array
ARRAY|DBTYPE_BSTR
langString array
ARRAY|DBTYPE_BSTR
bit32 array
ARRAY|DBTYPE_UI4
char array
ARRAY|DBTYPE_UI1
time array
ARRAY|DBTYPE_DATE
dpid array
ARRAY|DBTYPE_BSTR
blob array
—
ПРИМЕЧАНИЕ
Типы данных integer (целое число) (кроме I2) не работают в Excel 97, то есть, при доступе OLE DB используя VBA выдается ошибка времени выполнения. Это конкретная проблема Excel 97.
Преобразование типов данных
При работе с программами VB, применяется следующая матрица преобразования при импорте данных в переменные определенного типа:
Целью определения приоритетов запросов является снижение нагрузки на архивы посредством запросов поставщика данных OLE DB, вместо запросов диспетчера данных.
Определение приоритетов может быть настроено пользователем, и реализуется посредством трех потоков чтения. Конфигурационный параметр exclusiveReadThreadsForDM = только МД и readThreadsPreferringOleDb = предпочтительно OLE DB определяет, будет ли использоваться МД или OLE DB. При установке неверной конфигурации (например, общее количество потоков чтения превышает 3), отображается предупреждение, и используются значения по умолчанию. То, был ли создан запрос ДМ или OLE DB, может быть обнаружено с помощью идентификатора (только ДМ, предпочтительно ДМ или предпочтительно OLE DB). Оба записи конфигурации должны быть определены в разделе [valarch] конфигурационного файла.
Настройкой по умолчанию для трех потоков является следующее: один поток обрабатывает запросы не от OLE DB, второй оба (предпочтительно не от OLE DB), и третий также оба (предпочтительно OLE DB). Предпочтительно означает, что поток обрабатывает запросы из пула, пока он не опустеет. Запросы не из предпочтительного пула обрабатываются позже.
В следующей таблице содержатся поля таблицы ALERTS, которые могут быть доступны посредством запросов с использованием SQL. Таблица ALERTS создана для моделирования панели алармов. Примеры запросов SQL описаны в главе Примеры запросов.
«Name»
Тип OLE DB
ABBR
DBTYPE_BSTR
DPNAME
DBTYPE_BSTR
STIME
DBTYPE_BSTR
ALIAS
DBTYPE_BSTR
ОПИСАНИЕ
DBTYPE_BSTR
UNIT
DBTYPE_BSTR
ФОРМАТ
DBTYPE_BSTR
ACK_TIME
DBTYPE_BSTR
ACK_STATE
DBTYPE_I4
ACK_TYPE
DBTYPE_I4
ACK_USER
DBTYPE_UI4
ACKABLE
DBTYPE_BOOL
ALERT_COLOR
DBTYPE_BSTR
ARCHIVE
DBTYPE_BOOL
COMMENT
DBTYPE_BSTR
DEST
DBTYPE_I4
DEST_TEXT
DBTYPE_BSTR
DIRECTION
DBTYPE_BOOL
INACT_ACK
DBTYPE_BOOL
LAST
DBTYPE_BOOL
LAST_OF_ALL
DBTYPE_BOOL
OBSOLETE
DBTYPE_BOOL
OLDEST_ACK
DBTYPE_BOOL
PANEL
DBTYPE_BSTR
PARTN_IDX
DBTYPE_I4
PARTNER
DBTYPE_BSTR
PRIOR
DBTYPE_I1
SINGLE_ACK
DBTYPE_BOOL
TEXT
DBTYPE_BSTR
VALUE
DBTYPE_VARIANT
VISIBLE
DBTYPE_BOOL
Столбец PRIOR представлен в OLE DB как INTEGER, а не как CHAR в «КАСКАД Цифра» SQL.
В дополнение к значениям, представленным выше, есть 3 столбца, которые могут быть использованы условии WHERE для ограничения запроса:
«Name»
Тип OLE DB
ELEMENTTYPE
DBTYPE_BSTR
DPTYPE
DBTYPE_BSTR
ISLEAF
DBTYPE_BSTR
Для ISLEAF требуется, в отличие от «КАСКАД Цифра» SQL, логическое (булевское) сравнение. Это означает, что WHERE _LEAF становится WHERE ISLEAF = TRUE в OLE DB SQL.
В следующей таблице содержатся поля таблицы HISTVAL, которые могут быть доступны в запросе с использованием SQL.
«Name»
Тип OLE DB
DPSYSTEM
DBTYPE_I1
DPID
DBTYPE_UI4
DPEL
DBTYPE_I2
DPTYPEID
DBTYPE_I2
DPTYPE
DBTYPE_BSTR
DPNAME
DBTYPE_BSTR
STIME
DBTYPE_BSTR *)
ОПИСАНИЕ
DBTYPE_BSTR
ALIAS
DBTYPE_BSTR
ФОРМАТ
DBTYPE_BSTR
UNIT
DBTYPE_BSTR
ORIGINALVALUE
VARIANT **)
ONLINEVALUE
VARIANT
OFFLINEVALUE
VARIANT
DEFAULTVALUE
VARIANT
CORRECTIONVALUE
VARIANT
STATUSBITS
DBTYPE_UI4 ***)
ACTIVE_BIT
DBTYPE_BOOL
EXP_DEFAULT_BIT
DBTYPE_BOOL
AUTDEFAULT_BIT
DBTYPE_BOOL
DEFAULT_BIT
DBTYPE_BOOL
OUT_PRANGE_BIT
DBTYPE_BOOL
OUT_RANGE_BIT
DBTYPE_BOOL
EXP_INV_BIT
DBTYPE_BOOL
AUT_INV_BIT
DBTYPE_BOOL
INVALID_BIT
DBTYPE_BOOL
BAD_BIT
DBTYPE_BOOL
DEFAULT_BAD_BIT
DBTYPE_BOOL
ONLINE_BAD_BIT
DBTYPE_BOOL
OFFLINE_BAD_BIT
DBTYPE_BOOL
FROM_GI_BIT
DBTYPE_BOOL
FROM_SI_BIT
DBTYPE_BOOL
PER_ACTIVE_BIT
DBTYPE_BOOL
CORR_BIT
DBTYPE_BOOL
COMPR_BIT
DBTYPE_BOOL
COMP_CORR_BIT
DBTYPE_BOOL
CORR_ADD_BIT
DBTYPE_BOOL
COMP_INV_BIT
DBTYPE_BOOL
STIME_INV_BIT
DBTYPE_BOOL
USERBIT1_BIT
DBTYPE_BOOL
USERBIT2_BIT
DBTYPE_BOOL
USERBIT3_BIT
DBTYPE_BOOL
USERBIT4_BIT
DBTYPE_BOOL
USERBIT5_BIT
DBTYPE_BOOL
USERBIT6_BIT
DBTYPE_BOOL
USERBIT7_BIT
DBTYPE_BOOL
USERBIT8_BIT
DBTYPE_BOOL
USER
DBTYPE_UI2
MANAGER
DBTYPE_UI2
EVENTTYPE
DBTYPE_UI2
ARCHIVENUMBER
DBTYPE_UI2
*): Чтобы не утратить точности до миллисекунд, все виды «КАСКАД Цифра» TimeVar преобразуются в DBTYPE_BSTR в определенном формате времени по умолчанию, а также передаются в этом формате запрашивающему приложению.
**): Типом данных Variant в OLE DB может стать любой тип данных из «КАСКАД Цифра» (например, float, int, bool, string и др.) Страница Типы данных для поставщика данных OLE DB содержит информацию о преобразовании типов данных «КАСКАД Цифра» в типы данных OLE DB.
***): Поскольку запрашивающее приложение будет отображать целое число без знака в качестве числа, биты состояния преобразуются в BSTR, и также передаются в этом формате. Он содержит битовую строку из 32 символов (каждый 0 или 1).
Поскольку тип Variant ограничивается точностью временных данных до секунд, информация о времени, содержащаяся в исходном значении, оперативном значении и др., автоматически преобразуется в текст в стандартном формате времени, а затем всегда обрабатывается и отображается в виде текста.
Биты состояния также преобразуются в текст, представляющий битовую комбинацию.
Указание формата в двух функциях даты является обязательным. Форматом по умолчанию является: «yyyy.mm.dd hh:mm:hh.mmm», например, «2001.04.22 12:11:31.000».
Параметры, приведенные в функции strftime() стандарта ANSI для C могут использоваться в строке формата:ФункцияЗначение%aСокращенное имя дня недели%AПолное имя дня недели%bСокращенное имя месяца%BПолное имя месяца%cМестный способ представления даты и времени%dДень месяца (01 -31)%HЧас (00 -23)%IЧас (00 -12)%jДень в году (001 -366)%mМесяц (01 — 12)%MМинута (00 -59)%pМестный аналог AM (утро) или PM (дневное время)%SСекунда (00 -59)%UНеделя в году (воскресенье — первый день недели) (00 — 53)%wДень недели (0-6, Воскресенье = 0)%WНеделя в году (понедельник — первый день недели) (00 — 53)%xМестный способ представления даты%XМестный способ представления времени%yГод без указания столетия (00-99)%YГод с указанием столетия%ZНазвание временной зоны%%%
Строки могут быть заключены в одинарные (‘) или двойные кавычки («) в качестве ограничителей. Размещение обратной косой черты перед специальным символом (то есть, разделитель строки или знак подстановки) отменяет его значение. Две обратных косых черты обозначают саму обратную косую черту в качестве символа.
При указании знаков подстановки в запросе может использоваться как синтаксис SQL («%» означает любые символы, «_» означает любой одиночный символ), так и синтаксис «КАСКАД Цифра» («*» означает любые символы, «?» означает любой одиночный символ) (см. также конфигурационный параметр usePvssWildCards в разделе Записи в конфигурационном файле). Синтаксис «КАСКАД Цифра» используется по умолчанию, что является более практичным, потому что символ «_» часто используется в именах точек данных, а в синтаксисе SQL в каждом случае потребуется ведущий символ «/».
Если в условии появляется время источника, значение оператора равенства изменяется только в этом случае. Она возвращает значения, которые были действительны на это время. Однако они не должны быть созданы в это время, и, следовательно, могут иметь более раннее время источника в базе данных.
ПРИМЕР
SELECT ORIGINALVALUE, STIME FROM HISTVAL WHERE STIME = «2001.05.01 10:30:00.000»
Это может возвращать «2001.05.01 10:25:55:910» если последняя запись была сделана перед 10:30. Это исключение применяется только ко времени источника в операторе WHERE.
Для примера запросов ниже в архивах должны находиться следующие записи данных (для ясности показаны только выбранные столбцы):
Таблица HISTVAL
DPNAME
DPTYPE
ORIGINAL VALUE
STIME
INVALID _BIT
valve1
valve
1
2001.01.30 10:31:02.211
0
valve2
valve
1
2001.01.30 10:31:02.212
0
valve3
valve
1
2001.01.31 2:11:01.111
0
valve1
valve
0
2001.01.31 2:31:02.211
0
valve1
valve
1
2001.01.31 2:35:02.211
1
red1.m.switch
motor
1
2001.01.31 2:38:02.211
0
red1.f.sw1
motor
1,5
2001.01.31 10:31:02.211
0
red1.speed
motor
1,7
2001.01.31 10:32:02.211
0
red1.m.temp
motor
63,1
2001.01.31 10:33:02.211
0
red2.m.temp
motor
66,4
2001.01.31 10:33:02.212
1
red1.m.temp
motor
61,2
2001.01.31 10:33:02.213
0
red2.m.temp
motor
64,3
2001.01.31 10:33:02.214
0
red3.m.temp
motor
65,3
2001.01.31 10:33:02.215
0
red1.m.switch
motor
0
2001.01.31 10:33:02.215
1
ПРИМЕР
В следующем запросе извлекаются все точки данных и исходные значения для времени источника 30.1.2001:
SELECT DPNAME,ORIGINALVALUE,STIME FROM HISTVAL WHERE STIME BETWEEN «2001.01.30 01:00:00.000» AND «2001.01.31 01:00:00.000»
DPNAME
ORIGINALVALUE
STIME
valve1
1
2001.01.30 10:31:02.211
valve2
1
2001.01.30 10:31:02.212
ПРИМЕР
В следующем запросе извлекаются все точки данных, в том числе исходные значения и время источника, с именем точки данных, заканчивающимся на «switch» (переключатель) или «temp» (температура):
SELECT DPNAME,ORIGINALVALUE,STIME FROM HISTVAL WHERE DPNAME IN («*.*.switch.»,»*.*.temp.»)
DPNAME
ORIGINALVALUE
STIME
red1.m.switch
1
2001.01.31 2:38:02.211
red1.m.temp
63,1
2001.01.31 10:33:02.211
red2.m.temp
66,4
2001.01.31 10:33:02.212
red1.m.temp
61,2
2001.01.31 10:33:02.213
red2.m.temp
64,3
2001.01.31 10:33:02.214
red3.m.temp
65,3
2001.01.31 10:33:02.215
red1.m.switch
0
2001.01.31 10:33:02.215
ПРИМЕР
В этом запросе все записи с заданным INVALID_BIT типа точки данных «motor» (двигатель):
SELECT (INVALID_Bit),DPNAME,ORIGINALVALUE,STIME FROM HISTVAL WHERE DPTYPE = «motor»
DPNAME
ORIGINALVALUE
STIME
red1.m.switch
1
2001.01.31 2:38:02.211
red1.f.sw1
1,5
2001.01.31 10:31:02.211
red1.speed
1,7
2001.01.31 10:32:02.211
red1.m.temp
63,1
2001.01.31 10:33:02.211
red2.m.temp
66,4
2001.01.31 10:33:02.212
red1.m.temp
61,2
2001.01.31 10:33:02.213
red2.m.temp
64,3
2001.01.31 10:33:02.214
red3.m.temp
65,3
2001.01.31 10:33:02.215
red1.m.switch
0
2001.01.31 10:33:02.215
ПРИМЕР
В следующем запросе извлекаются все точки данных, исходные значения и время источника, с именем точки данных, начинающимся с «red» (красный) и содержащим одну точку (знак точки) в имени:
SELECT DPNAME,ORIGINALVALUE,STIME FROM HISTVAL WHERE DPNAME LIKE «red*.*.»
DPNAME
ORIGINALVALUE
STIME
red1.speed
1,7
2001.01.31 10:32:02.211
ПРИМЕР
В следующем запросе извлекаются максимальные исходные значения для всех переключателей (в порядке возрастания имен точек данных):
SELECT DPNAME,MAX(ORIGINALVALUE)FROM HISTVAL WHERE DPNAME LIKE «*.*.temp.» GROUP BY DPNAME ORDER BY DPNAME
ПРИМЕЧАНИЕ
Групповые функции, такие как MAX, MIN, следует использовать только для запроса значений точек данных, которые принадлежат к одному типу (см. пример выше). Поскольку существуют элементы точек данных различных типов (Float, String, DynBool и другие), вся таблица не может быть правильно запрошена такими типами, и отображается сообщение об ошибке.
ПРИМЕЧАНИЕ
При использовании имени точки данных в качестве критерия фильтрации в операторе SQL, необходимо всегда добавлять точку после имени точки данных, например, WHERE DPNAME LIKE «red1.m.temp.»
DPNAME
ORIGINALVALUE
red1.m.temp
63,1
red2.m.temp
66,4
red3.m.temp
65,3
Таблица ALERTS
ПРИМЕЧАНИЕ
Нельзя выполнять запросы с общим доступом, такие как UNION и JOIN, для таблиц HISTVAL и ALERTS. Можно запросить только закрытые интервалы для таблицы ALERTS.
ABBR
DPNAME
DPTYPE
STIME
ACK_TIME
PRIOR
ACK_TYPE
A
valve1
valve
2002.02.15 8:15:03.213
2002.02.15 8:15:07.213
60
TYPE_3: ‘Входящий аларм’ является квитируемым
A
red1.f.schl1
motor
2002.02.15 08:20:01.202
2002.02.15 8:21:01.204
60
TYPE_4: Для пары алармов требуется квитирование
aA
red1.m.switch
motor
2002.02.10 9:15:01.209
2002.02.10 9:16:01.209
20
TYPE_4: Для пары алармов требуется квитирование
aA
red1.f.schl1
motor
2002.02.15 08:20:01.202
2002.02.15 08:20:01.202
20
TYPE_3: ‘Входящий аларм’ является квитируемым
A
red1.rot
motor
2002.02.16 12:22:01.201
2002.02.16 12:22:01.201
60
TYPE_3: ‘Входящий аларм’ является квитируемым
A
red1.m.temp
motor
2002.02.16 12:22:01.202
2002.02.16 12:22:01.202
60
TYPE_3: ‘Входящий аларм’ является квитируемым
aA
red2.m.temp
motor
2002.02.16 12:22:01.203
2002.02.16 12:23:03.203
20
TYPE_3: ‘Входящий аларм’ является квитируемым
ПРИМЕР
В следующем запросе извлекаются все точки данных, оканчивающиеся словом «switch» или «temp» и временем источника в диапазоне 10.02.02-16.02.02:
SELECT ABBR,DPNAME,STIME,ACK_TIME,PRIOR, ACK_TYPE FROM ALERTS WHERE DPNAME IN («*.*.switch.»,»*.*.temp.») AND STIME BETWEEN «2002.02.10 07:00:00.000» AND «2002.02.16 01:00:00.000»
В запросе показаны аббревиатура приоритета, время источника, время квитирования, приоритет диапазона алармов и тип квитирования всех точек данных с вышеупомянутыми именами:
ABBR
DPNAME
STIME
ACK_TIME
PRIOR
ACK_TYPE
aA
red1.m.switch
2002.02.10 9:15:01.209
2002.02.10 9:16:01.209
20
TYPE_4: Для пары алармов требуется квитирование
A
red1.m.temp
2002.02.16 12:22:01.202
2002.02.16 12:23:01.202
60
TYPE_3: ‘Входящий аларм’ является квитируемым
aA
red2.m.temp
2002.02.16 12:22:01.203
2002.02.16 12:23:03.203
20
TYPE_3: ‘Входящий аларм’ является квитируемым
ПРИМЕР
В следующем запросе извлекаются все точки данных в течение периода 14.02.2002-17.02.02
SELECT DPNAME,STIME,ACK_TIME FROM ALERTS WHERE STIME BETWEEN «2002.02.14 01:00:00.000» AND «2002.02.17 01:00:00.000»
В этом примере показано, как запрашивать данные с помощью Microsoft Excel. Используется следующий параметр конфигурации:
Потребитель, поставщик (EXE и DLL), DM и архивы на одном общем компьютере Все они используют конфигурационный файл проекта «КАСКАД Цифра» и устанавливаются с помощью инсталляции «КАСКАД Цифра». Связь между поставщиком и потребителем (Provider-DLL) осуществляется через COM.
Действуйте следующим образом:
Добавьте запись WCCOAoledb manager в файл progs в разделе KASKAD_Project_Path/config
windows/WCCOAoledb | manual | 30 | 2 | 2 |
ПРИМЕЧАНИЕ
|Запись менеджера WCCOAoledb должна заканчиваться знаком. Следите за тем, чтобы в конце строки не было ”пробела»!
Зарегистрируйте следующие компоненты в качестве пользователя с правами администратора с помощью командной строки. Перед регистрацией компонентов перейдите в каталог KASKAD_Path/bin/windows. Обратите внимание, что вы регистрируете компоненты в заданном порядке:
WCCOAoledb.exe /regserver
regsvr32 WCCOAOleDbExeps.dll
regsvr32 WCCOAoledb.dll
Обратите внимание, что имя поставщика — WCCOAoledb OLE DB Provider и что поставщик является 32-разрядным. Поэтому вам необходимо добавить менеджер в файл progs вашего проекта под управлением 64-разрядной версии Windows.
Запустите в консоли проект «КАСКАД Цифра» и менеджер WCCOAoledb:
Рисунок: «КАСКАД Цифра» Консоль и менеджер WCCOAoledb
Откройте Microsoft Excel и меню “Данные“. В меню “Данные» выберите опцию «Из других источников“.
Рисунок: Microsoft Excel: меню “Данные” -> Опция «Из других источников»
В мастере подключения к данным выберите опцию “Другое/Дополнительно«. Нажмите Далее >
Рисунок: Microsoft Excel: Мастер подключения к данным -> Опция “Другое / Дополнительно”
Выберите опцию “WCCOA oledb OLE DB Provider” и нажмите Далее>
Рисунок: Microsoft Excel: Мастер подключения к данным -> Опция “Другое / Дополнительно“-> «Поставщик”
На вкладке «Подключение» нажмите «ОК«. Вам не нужно вводить источник данных.
Рисунок: Microsoft Excel: Мастер подключения к данным -> Свойства канала передачи данных -> Вкладка Подключения
Выберите либо таблицу значений (HISTVAL), либо таблицу оповещений (ALERTS).
Рисунок: Выберите таблицу базы данных
Выберите, как и где должны отображаться данные, и нажмите на OK.
Рисунок: Microsoft Excel, опция импорта данных
Данные отображаются в Excel.
Рисунок: Значения запроса в Microsoft Excel
SampleHistDB.xls Пример
Вы можете найти другой пример в разделе _WBR__КАСКАДКАСКАД/source/.SampleHistDB.xls Файл содержит три кнопки. Вы можете запросить текущие и исторические значения типа точки данных “ExampleDP*”, а также выполнить пользовательский запрос, добавив инструкцию SQL в ячейку A1 (см. Рисунок ниже).:
В «КАСКАД Цифра» поставщик данных OLE DB для исторической БД разделен на 2 модуля (компоненты EXE и DLL). Они взаимодействуют через простой COM-интерфейс.
ВНИМАНИЕ
В ОС Windows 64 бит поставщик данных OLE DB поддерживается только для одинарных серверных систем, что означает, что менеджер OLE DB (WCCOAoledb) работает на одном сервере, где на проекте запущен прокси. Менеджер OLE DB не поддерживается для систем с резервированием.
EXE-компонент поставщика интегрирован в этой версии в качестве менеджера «КАСКАД Цифра» (WCCOAoledb). Связь с отдельными архивами осуществляется посредством TCP/IP. DLL-компонент поставщика данных предоставляет запрашиваемые данные потребителю (программе, которую можно использовать для доступа к данным в «КАСКАД Цифра» с использованием OLE DB):
Рисунок: Доступ к данным «КАСКАД Цифра»
Возможные конфигурации
Потребитель, поставщик (EXE и DLL), DM и архивы на одном обычном компьютере. Это простейший вариант. Они все используют конфигурационный файл проекта «КАСКАД Цифра» и устанавливаются при установке «КАСКАД Цифра». Связь между поставщиком и потребителем (поставщик-DLL) реализуется посредством COM.