WPS加载iHyperDB ODBC驱动数据

Navigation:  功能明细 > 数据查询 >

WPS加载iHyperDB ODBC驱动数据

Previous pageReturn to chapter overviewNext page

 

1. 在系统驱动列表里添加iHyperDB ODBC驱动:

 

(1) 安装iHyperDB客户端;

安装完成后,先在LogClient.xml配置文件里加上ODBC相关配置,不然ODBC安装和调用都会有问题!

clip0172

 

填写完ODBC日志配置后,以管理员身份打开cmd命令行,跳转至安装目录的executable文件夹,执行"hdODBCInst.exe -install"命令安装ODBC动态库,

 

clip0173

 

确保windows的32位库文件夹里被安装程序复制了hdODBC.dll,才能进行下一步(win10系统里,32位库文件夹名称是"SysWOW64",64位库文件夹名称是"System32")

 

clip0174

 

(2)  打开系统ODBC(32位)驱动列表,准备添加ODBC数据源;

clip0175

clip0176

clip0177

 

(3) 填写iHyperDB ODBC驱动的详细信息,填写完点击确定。

 

数据源名称:iHyperDB ODBC驱动在驱动源列表里的注册名称;

 

数据源描述:对iHyperDB ODBC驱动的描述;

 

主机IP和端口:IHD数据库的主机IP和端口号;

 

备机IP和端口:IHD数据库的备机IP和端口号;

 

用户名:登录IHD数据库的用户名;

 

密码:登录IHD数据库的密码;

clip0178

添加成功后,在用户DSN列表里可以看到iHyperDB ODBC的数据源名称。

clip0179

 

2. WPS excel查询并导入IHD数据

 

打开WPS excel的导入数据接口,

clip0180

按照以下步骤加载IHD数据:

 

(1) 选择ODBC数据源,点击"其他/高级";

clip0181

在弹出的窗口选择ODBC Drivers

clip0182

在"机器数据源"列表里选择其他之前配置好的iHyperDB ODBC数据源

clip0183

如果成功连接至数据源,会在窗口信息里看到iHyperDB ODBC的相关配置信息

clip0184

(2) 选择IHD表和字段

在"表名"这一栏,可以选择IHD数据表,

clip0185

点击">"或者">>"按钮,可以添加一个或者所有的选定字段。接着点击"下一步"进入SQL语句生成页面。

clip0186

 

(3) excel自动生成SQL语句步骤

如图所示,excel会根据上一阶段选中的表和字段,自动生成对应的SQL语句。但是默认生成的SQL不符合IHD查询语法!

clip0187

 

需要注意的是,查询IHD数据的SQL语句,必须要有where条件,也就是每次查询都需要手动输入符合IHD规则的SQL语句!

点击按钮"1"并输入SQL语句后,再点击"下一步",进入查询数据的预览页面。

clip0188

 

(4) 数据查询结果预览和导入

在预览页面,点击"完成",即可将数据导入excel表格。

clip0189

clip0190

 

3. iHyperDB ODBC支持的常用SQL查询语法

(1) 查询实时值

SELECT [字段列1,字段列2,...] FROM HDRealTime WHERE FTAG='点名'

示例如下:

实时值:

// 查询单个tag点的实时值

SELECT * FROM HDRealTime WHERE FTAG = 'hdsys_cpu_0'

SELECT FTAG, FTIME, FQUALITY, FIVALUE, FTAGTYPE FROM HDRealTime WHERE FTAG = 'hdsys_cpu_0'

// 实时值模糊查询

SELECT * FROM HDRealTime WHERE FTAG = 'hd*'

SELECT * FROM HDRealTime WHERE FTAG = '*_cpu_0'

 

(2) 查询历史值

SELECT [字段列1,字段列2,...]  FROM HDArch WHERE FTAG = '点名' AND FTIME < '时间' limit 1000

(查询历史值必须要加limit限制记录条数,并且历史值不能模糊查询)

示例如下:

历史值:

// 查询单个tag点的前1000个历史值

SELECT * FROM HDArch WHERE FTAG = 'hdsys_cpu_0' AND FTIME < '2024-03-21 14:04:42.000' limit 1000

SELECT FTAG, FTIME, FQUALITY, FIVALUE, FTAGTYPE FROM HDArch WHERE FTAG = 'hdsys_cpu_0' AND FTIME < '2024-03-21 14:04:42.000' limit 1000

 

(3) 查询插值

SELECT [字段列1,字段列2,...] FROM HDInter WHERE FTAG = '点名' AND FTIME > '时间' AND FTIMESTEP = '时间间隔(秒)' AND FINTERTYPE = PREV limit 1000

(查询插值必须要加limit限制记录条数,并且插值不能模糊查询)

示例如下:

插值:

// 查询单个tag点的前1000个插值

SELECT * FROM HDInter WHERE FTAG = 'hdsys_cpu_0' AND FTIME > '2024-03-21 13:05:53.000'AND FTIMESTEP = 10S AND FINTERTYPE = PREV limit 1000

SELECT FTAG, FTIME, FQUALITY, FIVALUE, FTIMESTEP, FINTERTYPE, FTAGTYPE FROM HDInter WHERE FTAG = 'hdsys_cpu_0' AND FTIME > '2024-03-21 13:05:53.000'AND FTIMESTEP = 10S AND FINTERTYPE = PREV limit 1000