IFIX连接SQL读写数据和制作excel报表图文教程.docx

上传人:b****8 文档编号:10109354 上传时间:2023-02-08 格式:DOCX 页数:9 大小:18.97KB
下载 相关 举报
IFIX连接SQL读写数据和制作excel报表图文教程.docx_第1页
第1页 / 共9页
IFIX连接SQL读写数据和制作excel报表图文教程.docx_第2页
第2页 / 共9页
IFIX连接SQL读写数据和制作excel报表图文教程.docx_第3页
第3页 / 共9页
IFIX连接SQL读写数据和制作excel报表图文教程.docx_第4页
第4页 / 共9页
IFIX连接SQL读写数据和制作excel报表图文教程.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

IFIX连接SQL读写数据和制作excel报表图文教程.docx

《IFIX连接SQL读写数据和制作excel报表图文教程.docx》由会员分享,可在线阅读,更多相关《IFIX连接SQL读写数据和制作excel报表图文教程.docx(9页珍藏版)》请在冰豆网上搜索。

IFIX连接SQL读写数据和制作excel报表图文教程.docx

IFIX连接SQL读写数据和制作excel报表图文教程

IFIX连接SQL读写数据和制作excel报表图文教程

IFIX连接SQL数据库、制作excel报表详细教程

一、IFIX连接SQL数据库读写数据

IFIX连接SQL数据库有多种方法,其中最为方便的两种方法是:

(1)使用IFIX本身为SQL数据库提供的接口SQT和SQD;

(2)VB+ADO。

下面分别介绍着两种方法的实现步骤。

1、使用SQT和SQD读写SQL数据库

1.1安装SQL2008

(只列出关键步骤,其余直接点击“下一步”或“安装”)打开SQL安装中心,点击“安装”;

SQL2008简体中文版安装包下载链接:

点击“全新SQLServer独立安装或向现有安装添加功能”;

点击“输入产品密匙”,点击“下一步”:

(根据版本选择)

sqlserver2008密钥

Developer:

PTTFM-X467G-P7RH2-3Q6CG-4DMYB

Enterprise:

JD8Y6-HQG69-P9H84-XDTPG-34MBB

MicrosoftSQLServer2008R2序列号密钥

开发版32位:

MC46H-JQR3C-2JRHY-XYRKY-QWPVM

开发版64位:

FTMGC-B2J97-PJ4QG-V84YB-MTXX8

工组版:

XQ4CB-VK9P3-4WYYH-4HQX3-K2R6Q

WEB版:

FP4P7-YKG22-WGRVK-MKGMX-V9MTM

数据中心版32位:

PTTFM-X467G-P7RH2-3Q6CG-4DMYB

数据中心版64位:

DDT3B-8W62X-P9JD6-8MX7M-HWK38

企业版32位:

R88PF-GMCFT-KM2KR-4R7GB-43K4B

企业版64位:

GYF3T-H2V88-GRPPH-HWRJP-QRTYB

标准版32位:

CXTFT-74V4Y-9D48T-2DMFW-TX7CY

标准版64位:

B68Q6-KK2R7-89WGB-6Q9KR-QHFDW

功能选择界面,选择安装全部功能,点击“下一步”;

进入实例配置界面,选择默认实例,点击“下一步”;

进入服务器配置界面,启动类型均选为“自动”;点击“对所有SQLServer服务使用相同的账户”,在弹出的界面中选择第一个账户,密码不用填;返回服务器配置界面点击下一步;

进入数据库引擎配置界面,选择混合模式,输入自己设定的密码,点击“添加当前用户”,点击下一步,直至安装完成,关闭安装中心。

1.2进入SQLserver新建SQL登录名和数据库

打开SQL,以Windows身份验证登录;

连接完后,点击“安全性”-“登录名”,右击选择“新建登录名”:

在弹出的界面中,点击左上角的“常规”

,输入登录名、密码,不要勾选强制密码过期,之后点

击左上角“服务器角色”;

在弹出的界面中,根据需要勾选所需权限,这里全部勾选,再点击“用户映射”;

在弹出的界面中,“映射到此登录名的用户”内勾选所有数据库,并在每个数据库的“数据库角色成员身份”中勾选db_owner和public,而后点击“确定”,完成新建登录名。

完成登录名创建后,断开当前连接或是退出SQL重新进入软件,以SQL身份验证登录,输入刚刚新建的登录名,点击“连接”;

连接后,右击“数据库”,选择“新建数据库”,以默认配置完成新建,如这里新建数据库,取名为db1。

进入db1,新建三张表,新建右击“表”,选择“新建表”,输入如下图的列名及数据类型;点击保存,输入表名为sqllib,用于保存SQL命令;

新建第二张表,列名及数据类型如下图,取名为sqlerr,用于保存各类错误:

新建第三张表,用于保存需要的工业历史数据,这里将表取名为data,添加两个列COL1和COL2,数据类型都为float。

接下来为sqllib表添加SQL命令,这里添加一条向data表的COL1、COL2写入数据的语句,右击“abo.sqllib”,选择“编辑前200行”;写入如下图的内容,点击保存。

注:

如果要读取数据库内的数据,只要将该SQL命令换成相应的select语句。

1.3创建ODBC数据源

打开控制面板,依次点击“管理工具”-“数据源(ODBC)”,进入如下界面:

在点击“系统DSN”-点击“添加”按钮,在如下界面中选择“SQLServer”,

点击“完成”。

在以下界面中填写名称命名数据源,服务器填写自己的计算机名

(获取计算机名按照如下步骤:

右击桌面的“计算机”-选择“属性”,在弹出的界面上就可以看到),点击“下一步”;

按照下图配置,填入刚刚在SQL中新建的登陆名和密码,点击下一步;

勾选“更改默认的数据库为”,在下拉框中选择刚刚新建的数据库名,点击下一步;

直接点击“完成”按钮。

之后你可以在弹出的界面中点击“测试数据源”,若测试成功,则可以进入下一步骤。

1.4在SCU内配置SQL

打开IFIX,点击“SCU”,进入配置界面;

在如下界面中点击“配置”-选择“SQL”,

在弹出的界面中点击“增加”按钮,填入相应信息,点击“确定”。

选中刚刚添加的SQL账户,点击“配置SQL任务”;

启用SQL支持,选择我们所创建的数据库ID,点击“确定”,完成配置。

1.5在IFIX内创建SQT和SQD数据块

打开IFIX的数据库管理器,创建数字量输入数据块DI1,当DI1的值发生变化时就触发SQT(当然也可以采用时间事件来触发SQT,下面也会有介绍),点击界面内的“高级”标签。

进入高级标签,勾选“启用输出”和“手动”;

一般要保存到关系数据库的历史数据都是模拟量,因此本教程以模拟量为例子,将其存入SQL数据库。

创建模拟量寄存器数据块AR_1和AR_2:

创建数据块SQT,在数据库管理器中新建数据块,选择SQT类型,如下图;

进入如下的界面,若要采用DI1数值变化来触发SQT,则如下图填写信息。

在刚刚创建的db1数据库中,我们建立了sqllib表,并在表内添加了sqlname为cmd1,sqlcmd为“Insertintodata?

?

”这条语句。

在如下界面中,SQL名填写“cmd1”,数据库ID填写“db1”(所建ODBC数据源名称),事件标签写入“DI1.F_CV”,事件类型勾选“值变化”,这样,当DI1的值变化时,SQT就会触发,找到db1数据库下的sqllib表内sqlname等于cmd1的这条语句,并执行。

在上图中的“下一块”中填写SQD_1,构成数据链,此时会弹出如下界面,点击“yes”;

创建SQD数据块,如下图填写,因为是向数据库添加数据,所以方向选为OUT。

保存数据库管理器。

这样,就建立了一个DI1值变化触发的SQT和SQD。

如果我们希望以时间事件来触发SQT,应在建立SQT数据块的时候,设置触发时间,其余步骤相同。

例如,我们希望每天晚上23:

00至23:

59这段时间内,每5分钟记录一次数据到SQL数据库,建立SQT数据块时应如下图填写:

在IFIX主界面点“应用程序”,打开“任务控制”;

验证SQL服务是否启动,如下图所示说明注册成功。

作进一步验证,在数据库管理器内更改DI1的当前值,如将CLOSE改为OPEN,

按Ctrl+R,观察到SQT_1的当前值增加1,意味着SQT被触发一次,打开SQL也可以发现data表增加了一行记录。

以上就是使用SQT和SQD读写SQL数据库的详细步骤。

2、使用ADO访问数据库

2.1定时向数据库添加记录

首先,参照1.1-1.3的内容建立数据库(只需建立data表,sqllib和sqlerr不需创建),创建ODBC数据源。

打开IFIX,双击下图左下角的“数据定时写”,新建基于时间项;

假设我们要在每晚23:

00自动存数据,则如下图设置:

点击“VB编辑器”,写入如下代码:

填上代码后,一定要选择如下图这一步:

点击“工具”-“引用”,在下图界面中,勾上microsoftactivexdataobjects2.1library,否则会报错。

确定后保存。

右键点击FIXTIME8这一条,选择“调度程序属性”,在如下画面中选择“后台运行”,点确定;

在后续弹出的窗口中都选择“是”,直至完成,fixtimer8激活,时间一到,程序就会自动添加记录。

2.2从数据库读数据

从数据库读数据一般采用按钮触发,可以在ifix里新建一个画面,添

加一个按钮,在按钮

的脚本里添加代码,最后记得引用microsoftactivexdataobjects2.1

library。

代码基本和2.1相同,只是把相应的insert命令换成select语句。

二、IFIX制作excel报表

1、在建好数据库和数据源(参照1.1-1.3)后,新建一个ifix画面,添加一个ole对象,选择“MicrosoftWebBrowser”,用来显示报表;

2、新建一张excel报表模板,放到工程目录的APP文件夹下,如“人工数据日报表.xls”;

3、新建一个按钮,为其编写脚本,粘贴如下代码(覆盖新建画面原有的代码):

OptionExplicit

DimaAsSingle‘定义中间变量,用来暂存从数据库中取出的数据DimbAsSingle

DimrsADOAsADODB.Recordset‘定义连接数据库的ADO变量

DimconnAsNewADODB.Connection

PublicCmdTruckAsNewADODB.Command

PublicdbUpdataAsNewADODB.Command

PublicrstUpdataAsNewRecordset

PrivateSubCommandButton3_Click()‘点击按钮的响应函数

Callshowbb‘调用显示报

表的函数showbb

CallcloseDB1‘调用关闭数

据库的函数closeDB1

EndSub

PrivateSubshowbb()

DimRsAsNewADODB.Recordset'定义连接数据库的ADO变量

openDB1‘打开DB1数据库,该函数在后面有定义CmdTruck.ActiveConnection

=conn

CmdTruck.CommandText="selectmax(COL1)asCOL1,max(COL2)asCOL2fromdata"‘从data表读取COL1和COL2的最大值

SetRs=CmdTruck.Execute‘执行SQL语句

a=0

b=0

IfNot(Rs.BOFOrRs.EOF)Then‘将读出来的数据传给中间变量a、bIf(Rs!

col1)Then

a=Rs!

col1

b=Rs!

col2

EndIf

EndIf

DimxlAppAsObject'定义报表对象

DimxlBookAsObject

DimxlSheetAsObject

OnErrorGoToerrorhandle

SetxlApp=NewExcel.Application

SetxlBook=xlApp.Workbooks.Open(System.ProjectPath&"\app\人

工数据日报表.xls")‘打开报表模板SetxlSheet=

xlBook.Worksheets

(1)

xlApp.DisplayAlerts=False'警告禁用

xlApp.Visible=False'EXCEL隐藏

xlSheet.Cells(10,4)=a&""‘将中间变量的值写到对应excel的单元格xlSheet.Cells(11,4)=b

&""

xlSheet.SaveAsSystem.ProjectPath&"\app\人工数据日报表.htm",

FileFormat:

=xlHtml'工作表另存为

xlApp.DisplayAlerts=True'警告使能

xlApp.Quit

Me.WebBrowser1.NavigateSystem.ProjectPath&"\app\人工数据

日报表.htm"‘在WebBrowser控件上显示报表xlApp.Quit

SetxlSheet=Nothing

'释放内存

SetxlBook=Nothing

SetxlApp=Nothing

SetCmdTruck=Nothing

SetRs=Nothing

ExitSub

errorhandle:

MsgBox"报表生成错误~",vbOKOnly+vbInformation,"信息..."

SetxlSheet=Nothing

'释放内存

SetxlBook=Nothing

SetxlApp=Nothing

EndSub

PublicSubopenDB1()'定义打开数据库的函数openDB1

Ifconn.State<>adStateOpenThen

Withconn

.ConnectionString="Provider=SQLOLEDB;

server=2C68LK83W2F62AZ;database=db1;uid=operation;pwd=123456;"

‘连接数据源的相关信息

.Mode=adModeReadWrite

.Open

EndWith

EndIf

EndSub

PublicSubcloseDB1()'定义关闭数据库的函数closeDB1

Ifconn.State=adStateOpenThen

conn.Close

EndIf

EndSub

4、添加代码后点击“工具”-“引用”,在下图界面中,勾上microsoft

activexdataobjects

2.1library和Microsoftexcel12.0objectlibrary,否则会报错。

5、最后保存代码。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1