组态王与Access数据库的数据交换 点击:1257 | 回复:2



anguei0001

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 6回
  • 年度积分:0
  • 历史总积分:164
  • 注册:2013年4月10日
发表于:2018-07-12 15:19:35
楼主

1. SQL访问管理器

SQL访问管理器用来建立数据库列和组态王变量之间的联系。包括表格模板和记录体两部分功能。通过表格模板在数据库表中建立表格;通过记录体建立数据库表格列和组态王之间的联系,允许组态王通过记录体直接操纵数据库中的数据。表格模板和记录体都是在工程浏览器中建立的。

2. 创建表格模板

在工程浏览器中左侧工程目录显示区中选择“SQL访问管理器”下的“表格模板”项,在右侧目录内容显示区中双击“新建”,弹出“创建表格模板”对话框,如下图。

建立表格模板的目的在于定义一种格式,在后面用到是SQLCreatTable(),以次格式在Access数据库中建立表格。

3. 创建记录体

在工程浏览器中左侧工程目录显示区中选择“SQL访问管理器”下的“记录体”项,在右侧目录内容显示区中双击“新建”,弹出“创建记录体”对话框,如下图。

2.png

其中:

字段名称填写数据库表格中的列名。

组态王变量填写和表格中指定列相关联的组态王变量。

4. 建立Access数据库

1)建立一空Access文件,定名。

2)定义数据源

双击控制面板下的“ODBC数据源(32)”选项,弹出“ODBC数据源管理器”对话框。

选择“用户DSN”属性页,并单击“添加”按钮。

3.png

在弹出的“创建新数据源对话框中,选择“Mirosoft Access Driver”单击“完成”按钮。

弹出“ODBC Microsoft Access安装”对话框,定义数据源名。

4.png

单击“选取”按钮,从中选择相应路径下刚刚定义的数据库文件。

单击“确定”按钮,完成对数据源的配置。

5. 对数据库的操作

首先在数据词典里建立变量DeviceID,为内存整形,是数据库连接时产生的连接号。

5.1 连接数据库

函数SQLConnect( DeviceID, "dsn=;uid=;pwd=");

参数说明:

DeviceID  SQLConnct()产生的连接号。

"dsn=;uid=;pwd="  连接语句,包括 ODBC中定义的数据源名、用户名和密码,用户名和密码可以缺省。

例子:组态王以sa身份登录(无密码)和名为wangSQL Server中的pubs数据库连接。

SQLConnect(DeviceID,“DSN=wang;DATABASE=pubs;UID=sa; PWD=”);

5.2 创建表格

函数SQLCreateTable(DeviceID,TableName,TemplateName);

参数说明:

DeviceID  SQLConnct()产生的连接号。

TableName  想要创建的数据库的表格名。

TemplateName  表格模板名。

例子:下例创建一个名为kingview的新表,模板为table1

SQLCreateTable(DeviceID, “kingview”, “table1”);

5.3 插入新记录

函数SQLInsert(DeviceID, TableName, BindList);

参数说明:

DeviceID  SQLConnct()产生的连接号。

TableName  数据库的表格名。

BindList  记录体。

例子:在表格kingview中插入一条记录,记录体bind1

SQLInsert(ConnectionID, “kingview”, “bind1”);

5.4 得到选择集

函数SQLSelect(DeviceID, TableName, BindList, WhereExpr, OrderByExpr);

函数说明:

DeviceID  SQLConnct()产生的连接号。

TableName  数据库的表格名。

BindList  记录体。

WhereExpression  指定函数起作用行的条件。

注意:如果列名是字符串,表达式必须在单引号中。

下例选择名字列中等于Asia的行:

名字= ’Asia’

下例选择年龄列中在2030之间的行:

年龄>=20 and 年龄<30

OrderByExpression  定义排序的列和方向。只有列名可以用来排序,表达式:列名[ASC|DESC]

下例将以温度列的升序排序。

温度 ASC”

排序中也可使用多重表达式。例如:

温度 ASC,时间 DESC”

5.5 选择记录

SQLFirst(DeviceID);  SQLSelect()函数产生的结果集中选取首项记录。

SQLNext(DeviceID);  选取选择集中的下一条记录。

SQLPrev(DeviceID);  选取选择集中的上一条记录。

SQLLast(DeviceID);  选取由SQLSelect()创建的选择集的末条记录。

DeviceID  SQLConnct()产生的连接号

5.6 断开数据库

SQLDisconnect(DeviceID);

DeviceID  SQLConnct()产生的连接号。

 





ZR1000

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 28回
  • 年度积分:0
  • 历史总积分:230
  • 注册:2015年8月06日
发表于:2018-07-13 16:33:30
1楼

学习吧!组态王与Access数据库的数据交换

ZR1000

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 28回
  • 年度积分:0
  • 历史总积分:230
  • 注册:2015年8月06日
发表于:2018-07-13 16:35:46
2楼

学习吧!组态王与Access数据库的数据交换,行不行?


热门招聘
相关主题

官方公众号

智造工程师