大家好,我是雷工!
本篇通过实例,介绍KingSCADA3.7访问SQL Server2022数据库。
一、概述
1、创建数据库及数据表格;
2、配置ODBC数据源。
3、通过KingSCADA与数据库建立连接,将数据写入数据库对应表格。
二、创建数据库
1、安装数据库
还没有安装数据库或准备安装数据库的小伙伴可以参考:
《【数据库】SQL Server2022安装教程》
2、打开SQL Server Management Studio ,在连接界面输入数据库所在的服务器IP或服务器名称。
身份验证可以选择“Windows身份验证”或“SQL Server身份验证”,此样例选择的是“服务器名称”即本计算机的设备名称,可在系统信息处查看你计算机的名称。登录名“sa”,密码输入你安装时设置的登录密码。
3、创建数据库
3.1、连接上服务器后,选中“数据库”,右击,选择“新建数据库”选项。
3.2、在“数据库名称”处输入“SCADASQL”,点击“确定”按钮,就创建了一个名为“SCADASQL”的数据库。
3.3、在“SCADASQL”下“表”上右击选择“新建”->“表”创建一个名为“WXD”的数据表。
表结构可以参考《【数据库】SQLServer报修表,维修表,反馈表三表连查》设置。
三、配置ODBC数据源
1、通过“控制面板”->“所有控制面板项”->“Windows工具”打开ODBC数据源管理器。
2、选择“系统DSN”,点击“添加”按钮。
3、选择数据源驱动程序“SQL Server”,点击“完成”按钮。
4、为数据源命名“kssql1”,在服务器处输入IP地址或设备名称。
注意:IP处可以输入需要的IP地址,本机可复制输入本机设备名,如果点击下拉按钮会卡死,未响应,等待时间较长。
5、选择“使用用户输入登录ID和密码的SQL Server验证”,输入登入ID:sa ;密码输入你设置的密码;点击“下一步”。
6、可改默认数据库为你需要连接的数据库,此处改为“SCADASQL”,然后点击“下一步”。
7、不做修改,直接点击“完成”按钮。
8、弹出如下窗口,可点击“测试数据源”按钮。测试是否可以连上SQLServer数据库。
9、稍等片刻,弹出链接数据测试结果,显示“测试成功”,点击“确定”按钮,完成数据源创建。
10、在ODBC数据源管理程序窗口显示新建数据源“kssql1”,点击“确定”,关闭当前窗口。
四、KingSCADA连接SQL Server并插入数据
1、新建工程
2、创建一个画面
(新建工程和新建画面步骤可参考SCADA手册,此处采用现成的项目演示此功能。)
3、编辑按钮脚本
脚本实现功能为先获取界面输入框的内容是否输入完整,然后获取界面输入的信息,编辑SQL插入语句,链接数据库将数据插入对应的数据库表格。
按钮脚本代码如下:
int a=ShowMessageBox("请检查录入信息是否正确,确认录入请点击确定", "提示", 1,4);
if(a==1)
{
//获取输入框信息
string wxdh=wxdh.Text;//获取单号
string wxbxtime=wxbxtime.Text;//获取报修时间
string wxsbname=wxsbname.Text;//获取设备名称
string wxzby=wxzby.Text;//获取值班员
string wxbzz=wxbzz.Text;//获取班组长
string wxbxr=wxbxr.Text;//获取报修人
string wxwtms=wxwtms.Text;//获取问题描述
string wxjbtime=wxjbtime.Text;//获取接报时间
string wxjbr=wxjbr.Text;//获取接报人
string wxxfr=wxxfr.Text;//获取修复人
string wxxftime=wxxftime.Text;//获取修复时间
string wxysr=wxysr.Text;//获取验收人
string wxwxr=wxwxr.Text;//获取维修人
string wxgzfx=wxgzfx.Text;//获取故障分析
if(wxdh==""||wxbxtime==""||wxsbname==""||wxzby==""||wxbzz==""||wxbxr==""||wxwtms==""||wxjbtime==""||wxgzfx==""||wxxfr==""||wxxftime==""||wxysr==""||wxwxr==""||wxgzfx=="")
{
ShowMessageBox("信息录入不完整,请填写后再录入!", "提示", 0,4);
return;
}
string sql="insert into WXD Values('"+wxdh+"','"+wxbxtime+"','"+wxsbname+"','"+wxzby+"','"+wxbzz+"','"+wxbxr+"','"+wxwtms+"','"+wxjbtime+"','"+wxjbr+"','"+wxxfr+"','"+wxxftime+"','"+wxysr+"','"+wxwxr+"','"+wxgzfx+"')";
bool res,res1;
res=/*bool*/ KDBExecuteStatement("DSN=kssql1;DATABASE=SCADASQL;UID=sa;PWD=admin@123;",sql);
if(res==0)
{
KDBDisConnect( "bx");
KDBGetConnectID( "bx", "DSN=kssql1;DATABASE=SCADASQL;UID=sa;PWD=admin@123;");
res1=KDBExecuteStatement("DSN=kssql1;DATABASE=SCADASQL;UID=sa;PWD=admin@123;",sql);
if(res1==0)
{
ShowMessageBox("录入数据失败,请确认设备信息是否已录或网络不通!", "提示", 0,1);
return;
}
}
ShowMessageBox("录入数据成功", "提示", 0,0);
}
4、运行项目
4.1、操作步骤
在输入界面输入要插入的信息,点击“入录”按钮。
4.2、效果演示
填写信息并录入演示
SQL数据查询演示
后记
以上为KingSCADA连接SQLServer并插入数据的详细过程,通过与数据库的连接存储,将采集的信息和数据存入SQL数据库,可以更轻松的实现与现有或规划中的MES和ERP系统相集成,从而使数据能够通过整个组织无缝流动。