2020年12月浅谈应用程序从SQL Server向神通数据库的移植
张莹,刘文静
(公安部第一研究所,北京100048)
【摘要】随着软硬件产品国产化的呼声越来越高,使用国产数据库来存储和处理信息资源势在必行,神通等国产数据在安全性、自主性、可控性和后续服务上比SQL Server等国外数据库更有优势,是未来的发展趋势。本文设计实现了ODBC封装类,从而提高应用程序和数据库管理系统之间的独立性,使应用程序的移植变得更加容易。当应用程序从SQL Server向神通数据库移植时,在代码层面使用ODBC封装类,底层修改ODBC数据源的相关配置即可。
【关键词】神通数据库;程序移植;ODBC
【中图分类号】TP391【文献标识码】A【文章编号】1006-4222(2020)12-0194-03
0引言
“棱镜门事件”为我国信息安全保护敲响了警钟,也让我们深刻地认识到软硬件产品国产化的重要性。只有通过应用国产化产品来实现信息系统的“安全、可控”,才能从根本上消除“后门”等信息安全风险,提高信息系统的安全可靠和自主可控能力。
数据库技术作为信息系统的核心和基础,在越来越多的领域得以应用[1]。在各应用领域中,国外数据库如:Oracle、SQL Server等一直占据着较大的市场份额,然而,随着软硬件产品国产化的呼声越来越高,使用国产数据库来存储和处理信息资源势在必行。
1数据库简介
1.1SQL Server
SQL Server是美国微软公司推出的数据库产品,是全球主流数据库之一,主要版本包括:SQL Server2008、SQL Server 2014、SQL Server2019等。
数据库应用在哪些方面SQL Server数据库管理系统可以帮助成千上万的企业用户快速实现各种数据体验,可以向不同用户提供海量数据的处理能力。SQL Server数据库管理系统具有较高的安全性、可用性和易用性,提供图形化的数据库管理工具,方便易用。SQL Server数据库管理系统尽管优势诸多,可是它和别的数据库相比也存在一些不足:SQL Server数据库管理系统一般只能运行在Windows平台上,平台兼容性不够好。1.2神通数据库
神通数据库管理系统是天津神舟通用数据技术有限公司自主研发的大型通用数据库产品,拥有全文检索、层次查询、结果集缓存、并行数据迁移、双机热备、水平分区、并行查询和数据库集等增强型功
能,并具有海量数据管理和大规模并发处理能力。系统功能完善、性能稳定,可广泛应用于各类企事业单位、政府机关的信息化建设。
神通数据库为用户提供的功能包括:支持丰富的数据类型、提供功能强大的内置函数、支持视图、存储过程、完整性约束机制、触发器、事务处理、数据备份和恢复,提供交互式SQL 查询工具。同时,神通数据库在功能、性能、稳定性等方面都可与国产CPU、国产操作系统很好的兼容[2]。
2应用程序移植
2.1ODBC编程
ODBC是微软公司开放服务体系中关于数据库的一个重要组成部分,ODBC建立了一系列的规范,并且提供了一系列标准的API接口用以访问数据库。通过ODBC编写的应用程序具有较好的移植性,可以访问不同种类的数据库管理系统[1]。
通过ODBC编写应用程序的体系结构如图1所示,该体系结构由五部分组成:数据源、驱动程序、驱动程序管理器、标准接口、应用程序。
(1)数据源:用户需要访问、处理、存储的数据资源,是一种数据连接的抽象。ODBC数据源配置包括,数据库类型、
数
图1ODBC应用程序的体系结构
专题综述194
2020年12月
据源名称、数据库位置、连接数据库的用户名和密码。
(2)驱动程序:ODBC 使用数据库驱动程序来实现数据库管理系统和应用程序的独立性。
(3)驱动程序管理器:管理不同的驱动程序。ODBC 驱动程序是微软公司的产品,其主要的功能包括管理ODBC 数据源、装载ODBC 驱动程序等。
(4)标准接口:不同数据库的厂商对应的ODBC API 都要符合API 和语法的一致性,ODBC 3.0标准提供了76个API ,可满足应用程序调用数据库的功能需求。
(5)应用程序:通过ODBC 编写数据库应用程序时,应使用标准的SQL 语句和ODBC 接口函数,从而保证应用程序具有更好的可移植性。
2.2ODBC 配置
2.2.1神通数据库在Windows 平台下ODBC 配置
在Windows 平台下,通过ODBC 数据源管理程序配置
ODBC 数据源,
如图2所示,选择OSCAR ODBC DRIVER (神通数据库),根据配置向导填写数据源名称、服务器地址、数据库名称、端口号、认证信息等相关信息。
2.2.2神通数据库在Linux 平台下ODBC 配置
在Linux 平台使用ODBC ,首先需要下载安装unixODBC
安装包,安装完成后配置/etc/odbcinst.ini 文件和/etc/odbc.ini 文件。
配置odbcinst.ini ,作用就是注册OSCAR 的ODBC 驱动,该驱动名称为OSCAR ODBC DRIVER ,内容如下:
[OSCAR ODBC DRIVER]Description=oscar odbc for linux
Driver64=/opt/ShenTong/odbc/lib/liboscarodbc.so Setup64=/opt/ShenTong/odbc/lib/liboscarodbc.so 配置odbc.ini ,作用就是创建系统DSN ,名称为TEST ,调
用OSCAR 的ODBC 驱动,内容如下:
[ODBC Data Sources]TEST=OSCAR ODBC DRIVER
[TEST]
Driver=/opt/ShenTong/odbc/lib/liboscarodbc.so Servername=localhost Port=2003Database=TEST Username=sysdba
Password=123456
配置完成后,在终端输入如下命令:isql TEST sysdba
123456,
若如图3所示,则说明配置成功。2.3代码移植
在应用程序中,设计数据库接口模块,将ODBC API 封装
到类中,可以屏蔽底层数据库的差异,
当从SQL Server 迁移
到图2OSCAR 在Windows 平台下的ODBC 配置
图3ODBC 配置成功
接口函数名称功能描述输入输出返回值
GetHStmt 获取SQL 语句句柄
无无SQL 语句句柄
CloseCursor
关闭游标
无
无
成功,DB_SUCCESS
失败,
ERROR_DB_CLOSECUR
PrepareSQL SQL 语句执行准备SQL 语句,SQL 语句长度
无
成功,DB_SUCCESS
失败,
ERROR_DB_PREPARE
BindParameter
SQL 语句绑定参数参数序列号,参数类型,参数的C 数据类型,参数的SQL 数据类型,
参数大小,与参数描述符连接的列的小数位,指向参数数据缓冲区的指针,参数数据缓冲区的长度,指向参数长度缓冲区的指针无
成功,DB_SUCCESS
失败,
ERROR_DB_BINDPARAM
BindCol
SQL 语句绑定输出列号,绑定值的C 数据类型,指向绑定值的数据缓冲区指针,绑定值的数据缓冲区的长度,指向绑定值长度缓冲区的指针
无
成功,DB_SUCCESS
失败,
ERROR_DB_BINDCOL
Execute SQL 语句执行
SQL 语句无
成功,DB_SUCCESS
失败,
ERROR_DB_EXEC_DIREC
表2CODBCMgmt 类的主要函数
(下转第198页)
专题综述195
2020年12月
路信号传输系统的健康发展贡献力量。
参考文献
[1]李明光.电气牵引电流对信号设备干扰原因分析及处置方案[J].铁
路通信信号工程技术,2020,17(7):69-75.
[2]刘让雄.电气化铁路支柱烧损的原因分析及预防措施[J].电世界,
2020,61(4):39-41.
[3]楚振宇.电气化铁路单线直供牵引网回流系统分析[J].电气化铁
道,2019,30(增刊1):102-106.
收稿日期:2020-11-25
作者简介:吴振兴
(1988-),男,汉族,甘肃古浪人,工程师,本科,主要从事铁路、地铁站后工程施工、
铁路电务维护工作。系统的硬件的构成结构及软件的运行过程进行了简单的说明。通过对系统的不断调试,基本实现了定位系统的预期目标,并且拥有较高定位精度。
参考文献
[1]邓中亮,
尹露,唐诗浩,等.室内定位关键技术综述[J].导航定位与授时,2018,5(3):14-23.
[2]许万,
涂拓,胡天宇,等.基于超宽带技术的室内无线定位系统设计[J].湖北工业大学学报,2020,35(5):1-7.
[3]王佩,高凯.UWB 定位技术分析[J].中国科技信息,2020(17):67-68.
[4]杨潇,
张晓如.基于超宽带技术的室内定位方法研究[J].软件导刊,2020,19(9):97-100.[5]顾慧东,
焦良葆,周健.室内UWB 通信高精度定位系统设计[J].软件导刊,2020,19(4):159-163.[6]岳俊升,
程钢,邓超.标签高度差的UWB 室内定位方法[J].导航定位学报,2019,7(3):44-50.[7]宋雪.基于UWB 的室内定位系统设计[D].吉林:
东北电力大学,2020.
[8]肖晓晴.基于UWB 的移动物体室内定位技术研究[D].苏州:
苏州大学,2019.
[9]唐斌,
赵慧广.BIM 信息模型在院校建筑消防中的应用[J].武警学院学报,2018(8):65-69.[10]陈相毅.广播电视部门人员定位系统应用探讨[J].西部广播电视,2018(8):184.
[11]范烨,
陈秋霞,倪丽慧.DWM1000模块的UWB 机器人室内定位系统[J].单片机与嵌入式系统应用,2018(11):48-50,54.[12]倪振心,
殷锋,袁平.基于地磁与改良粒子滤波算法的室内定位方法[J].现代计算机,2020(3):3-7.
收稿日期:2020-11-02
作者简介:张文康(1998-),男,汉族,山东济宁人,本科在读,研究方向为室内定位。
齐双领(1999-),男,汉族,山东潍坊人,本科在读,研究方向为室内定位。
丁丽姣(1998-),女,汉族,山东临沂人,研究生在读,研究方向为室内定位。
荆长强(1985-),男,汉族,山东临沂人,博士,研究方向为室内定位、物联网应用。
(上接第193页)
接口函数名称
功能描述
输入输出返回值InitOdbcEnv
初始化用于连接
数据库的ODBC 环境无无无
GetpHDbc 获取数据库连接句柄
无无数据库连接句柄
InitConnection
初始化一个数据库连接
无
无
无
表1CODBcSetting 类的主要函数
神通数据库时,基本无须改动数据库相关的程序代码。
数据库接口模块有两个类,其主要设计如表1、表2所示。(1)CODBCSetting 类,初始化数据库环境参数,主要函数如表1所示。
(2)CODBCMgmt 类,封装对数据库的操作,主要函数如表2所示。
3结束语
本文使用C++语言构造了适用于不同数据库访问接口的
ODBC 封装类,并且成功实现了基于国产神通数据库的应用
程序移植,提高了应用程序从SQL Server 向神通数据库的移植效率。此外,神通等国产数据在安全性、自主性、可控性和后续服务上比SQL Server 等国外数据库更有优势,是未来的发展趋势[3]。
参考文献
[1]王珊,萨师煊.数据库系统概论[M].北京:高等教育出版社,2006.
[2]天津神舟通用数据技术有限公司.神通数据库-数据库快速入门[Z].2020.
[3]李培军,
毕于慧,田仲,等.利用OCI 封装类实现Oracle 与国产数据库间的应用程序移植[J].微型机与应用,2016,35(8):71-75.
收稿日期:2020-11-11
作者简介:张莹
(1987-),女,满族,辽宁兴城人,工程师,硕士研究生,主要从事专网通信安全工作。
(上接第195页)专题综述
198
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论