关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。关系模型是由埃德加·科德于1970年首先提出的,并配合“科德十二定律”。现如今虽然对此模型有一些批评意见,但它还是数据存储的传统标准。标准数据查询语言SQL就是一种基于关系数据库的语言,这种语言执行对关系数据库中数据的检索和操作。 关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。简单来说,关系型数据库是由多张能互相联接的二维行列表格组成的数据库。
在ApolloStudio中对关系型数据库的支持分为远程数据库和本地数据库,两者的区分界定是数据库本身是否内置服务器功能来支持远程网络访问。 远程数据库主要涵盖的数据库有:MS SQLServer、Oracle和MySQL这三类为主(其他支持ODBC驱动访问的数据库同样兼容),本地数据库主要支持的是SQLite和MS Access这两类。本地数据库系统中SQLite内置了访问驱动而MS Access需在机器上安装Office套件或者独立数据引擎AccessDatabaseEngine(百度搜索下或者文末网盘均有提供)。
本文是以本地MySQL 数据库作为应用案例讲解,我们默认机器上已安装正确版本的ODBC驱动(ApolloStudio仅支持X64版本的驱动)。我们先看下ApolloStudio中所提供的接口:
配置数据库ODBC连接
我们现在工具箱中找到ODBC管理器,自动打开系统自带的管理器 ,在用户DSN页面上,我们点击添加:
这里我们选择MySQL ODBC 8.0 Unicode Driver(安装版本不一样可能版本号有差异,本机装的是8.0版本驱动):
填入描述、IP地址、用户名、密码然后点击Test验证是否通过,接着选择对应的数据库名,这里本机是mydb(我们事先已配置好该数据库),保存即可:
接下来我们回到ApolloStudio中,添加远程数据库单元,右键点选配置,可以在下拉菜单中我们即可找到刚才我们配置的LocalMySQL :
保存,这样我们的连接就配置完成了!
应用案例测试
这里我们选择一个简单例子做测试,我们先在上文中提到的mydb数据库中放入几组数据:
我们在ApolloStudio任务列表添加一个界面用来调取和显示这些数据,并实现CSV文件导出,这里我们使用了一个数据列表控件以及三个按钮控件,简单测试刷新获取所有数据,添加数据,以及导出CSV文件功能:
最后编写脚本:
#-*- coding: UTF-8 -*-
#加载内嵌模块
import clr,sys,time,datetime
########################################################
#数据库查询显示导出案例
########################################################
#变量初始化
#插入固定数据信息到数据库中
sql_InsertData = "INSERT INTO mydb (姓名,性别,出生日期) VALUES ('王五','男','2018-09-13')"
#获取数据库中所有信息
sql_SelectAllData = "SELECT * FROM mytable"
#定义一个默认DataTable对象
alldata = AS.Func_SQL_ODBC_Select(0, sql_SelectAllData)
#循环函数体
while True:
if AS.Func_UI_Button_GetValue(0):#添加信息按钮被触发
AS.Func_UI_Button_SetValue(0, False)#复位按钮触发标志位
AS.Func_SQL_ODBC_Insert(0, sql_InsertData)#插入数据
alldata = AS.Func_SQL_ODBC_Select(0, sql_SelectAllData)#刷新所有数据
AS.Func_UI_DataGridView_SetDataSource("dgv1", alldata)#绑定显示到UI界面
if AS.Func_UI_Button_GetValue(1):#刷新查询信息按钮被触发
AS.Func_UI_Button_SetValue(1, False)#复位按钮触发标志位
alldata = AS.Func_SQL_ODBC_Select(0, sql_SelectAllData)#刷新所有数据
AS.Func_UI_DataGridView_SetDataSource("dgv1", alldata)
if AS.Func_UI_Button_GetValue(2):#导出CSV文件按钮被触发
AS.Func_UI_Button_SetValue(2, False)#复位按钮触发标志位
AS.Func_CSV_DataTableToCSV(alldata, "D:/test.csv")#保存在D盘根目录
time.sleep(0.2)
在上面的脚本中我们可以发现,所有的SQL语句直接复制即可获得所需效果,值得注意的是使用查询语句后会有一个返回值,其数据类型是DataTable,也就是一张表,后续的操作完全是针对表进行对应操作,点击运行后执行结果:
***********************************************************************************************************************************************
ApolloStudio最新版下载地址(网盘有交流群号):