【SCADA】KingSCADA将数据插入SQLServer的方法

news2025/1/13 19:38:47

大家好,我是雷工!
本篇通过实例,介绍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数据查询演示
SQL查询

后记

以上为KingSCADA连接SQLServer并插入数据的详细过程,通过与数据库的连接存储,将采集的信息和数据存入SQL数据库,可以更轻松的实现与现有或规划中的MES和ERP系统相集成,从而使数据能够通过整个组织无缝流动。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/551444.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自动化测试与手工测试?你真的了解吗?如何共存...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 Python自动化测试&…

代码随想录算法训练营第二十七天|39. 组合总和 40.组合总和II131.分割回文串

文章目录 39. 组合总和思路代码总结 40.组合总和II思路代码总结 131.分割回文串思路代码总结 39. 组合总和 思路 我举过例子,如果是一个集合来求组合的话,就需要startIndex,例如:77.组合 ,216.组合总和III 。 如果是…

【AIGC使用教程】Microsoft Edge/Bing Chat 注册使用完全指南

欢迎关注【AIGC使用教程】 专栏 【AIGC使用教程】SciSpace 论文阅读神器 【AIGC使用教程】Microsoft Edge/Bing Chat 注册使用完全指南 【AIGC使用教程】GitHub Copilot 免费注册及在 VS Code 中的安装使用 【AIGC使用教程】GitHub Copilot 免费注册及在 PyCharm 中的安装使用 …

算法时间复杂度

参考视频&#xff1a;https://www.bilibili.com/video/BV14j411f7DJ 目录 1.常数阶O(1) 2.对数阶O(IogN) 3.线性阶O(n) 4.线性对数阶O(nlogN) 5.平方阶O(n^2) 6.立方阶O(n^3) 7.K次方阶O(n^k) 8.指数阶(2^n) 9.阶乘O(n!) 两层for循环 for (int i 1; i <…

有模型强化学习和免模型强化学习有什么区别?

有模型强化学习&#xff08;Model-Based Reinforcement Learning&#xff09;和无模型强化学习&#xff08;Model-Free Reinforcement Learning&#xff09;是两种不同的强化学习方法。 有模型强化学习是指&#xff0c;智能体在学习过程中能够对环境进行建模&#xff0c;即学习…

软件测试分类: 你需要知道的不同类型测试

文章目录 一. 按测试对象进行划分1. 界面测试2. 可靠性测试3. 容错性4. 文档测试5. 兼容性测试6. 易用性测试7. 安装卸载的测试8. 安全测试9. 性能测试10. 内存泄漏测试 二. 按是否查看代码划分1. 黑盒测试(Black-box Testing)2. 白盒测试(White-box Testing)冒泡排序测试用例进…

【1 Vue基础 - 模板语法-绑定】

1 VSCode代码片段 链接: link 2 Mustache双大括号语法 插入内容 <body><div id"app"><!-- 1.基本使用 --><h2>{{ message }}</h2><h2>当前计数: {{ counter }} </h2><!-- 2.表达式 --><h2>计数双倍: {{ c…

研发项目工时统计工具哪个好?9大工时管理系统盘点

工时管理是项目型企业的重要需求&#xff0c;特别是在人力成本占比较高的行业&#xff0c;如软件开发、设计咨询、会计律师等。工时管理可以帮助企业核算项目人工成本&#xff0c;控制成本投入&#xff0c;提高项目利润&#xff0c;客观考核员工绩效&#xff0c;优化资源分配等…

C++类和对象入门(中)

C类和对象入门 中 1. 类的6个默认成员函数2. 构造函数2.1 概念2.2 特性 3.初始化列表4.析构函数4.2 特性 5. 拷贝构造函数5.1 特性 6.运算符重载6.1 赋值运算符重载6.2前置和后置重载 7. 自实现日期类 1. 类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空…

golang 服务中 context 超时处理的思考

文章目录 前言起因&#xff1a;日志告警引发的思考什么是contextcontext的作用context超时之后继续执行 or 中断 最后 前言 公司运行的服务代码中&#xff0c;随处可见各种各样的日志信息&#xff0c;其中大多数是用来记录各种异常的日志&#xff0c;一方面&#xff0c;当出现…

煤矿电子封条实施方案 yolov7

煤矿电子封条实施方案采用YOLOv7网络模型算法技术&#xff0c;煤矿电子封条实施算法模型过将全国各省矿山实时监测数据&#xff0c;实现对全国各矿山及时有效的处理及分析。YOLOv7 的发展方向与当前主流的实时目标检测器不同&#xff0c;研究团队希望它能够同时支持移动 GPU 和…

Arthas实现热更新代码

目录 1.Arthas简介 2.准备Demo 3.启动Arthas 4.Arthas命令 5.使用retransform命令热更新代码 1.Arthas简介 Arthas 是一款线上监控诊断产品&#xff0c;通过全局视角实时查看应用 load、内存、gc、线程的状态信息&#xff0c;并能在不修改应用代码的情况下&#xff0c;对…

Python中的模块2

为了加快导入模块的速度&#xff0c;Python会缓存之前使用过的模块。 1 保存缓存文件的路径 Python会将之前编译过的模块保存在与该模块同一目录中的“__pycache__”文件夹中。 2 缓存文件名 缓存文件会以“模块名.版本号.pyc”格式命名。图1为使用yang_module.py模块后得到…

2023年NOC大赛创客智慧编程赛项图形化复赛模拟题一,包含答案解析

2023年NOC大赛创客智慧编程赛项图形化复赛模拟题一,包含答案解析 本次题目来源:NOC 大赛创客智慧编程赛项图形化复赛模拟题(一) 第一题: 制作一个生日贺卡小程序. 1.点击绿旗后蛋糕出现在 (0,-80) 的位置,大小为 100,造型为 cake-b2.当碰到鼠标指针时,将造型切换为 ca…

【EasyAR实战项目】图像识别+模型交互(全网首发,保姆级教程)

话不多说&#xff0c;先看实现效果 开发准备 以下为作者开发的环境&#xff0c;当然也可以使用更高的版本&#xff0c;尤其是EasyAR的版本可以选择更高的&#xff0c;因为这玩意儿版本迭代的太快了&#xff0c;而且更高版本所支持的手机型号更新&#xff0c;兼容性更强。 1 U…

SpringBoot实现限流注解

SpringBoot实现限流注解 在高并发系统中&#xff0c;保护系统的三种方式分别为&#xff1a;缓存&#xff0c;降级和限流。 限流的目的是通过对并发访问请求进行限速或者一个时间窗口内的的请求数量进行限速来保护系统&#xff0c;一旦达到限制速率则可以拒绝服务、排队或等待…

MySQL---存储引擎

1. 存储引擎 数据库存储引擎是数据库底层软件组织&#xff0c;数据库管理系统使用数据引擎进行创建、查询、更新和删 除数据。 不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能。不同的数据库管理系统都支持 多种不同的数据引擎。MySQL的核心就是存储引擎。 …

IDEA创建项目的操作步骤以及在虚拟机里面创建Scala的项目简单介绍

文章目录 前言 一、Idea创建项目的操作 1、选择本地的Scala插件包 2、创建项目的操作 3、输入新建的项目名称 4、在文件file里面选择new一个新的module文件 5、输入项目的名称&#xff0c;点击下一步 6、创建一个Scala文件夹 7、选择Mark directory as 8、单击文件里…

【5.21】六、自动化测试—概述

目录 6.1 自动化测试概述 6.1.1 什么是自动化测试 6.1.2 自动化测试的基本流程 6.1.3 自动化测试实施策略 6.1.4 自动化测试的优势和劣势 测试中的许多操作都是重复性的、非智力性的和非创造性的&#xff0c;但要求工作准确细致&#xff0c;此时计算机最适合代替人工去完成…

SpringBoot2.6.3集成ElasticSearch7.13.4详解,上下两篇,上篇集群配置,下篇集成配置(上)

一、集群配置准备 &#xff08;1&#xff09;方式一&#xff0c;从网盘下载ElasticSearch7.13.4 链接: https://pan.baidu.com/s/1vwUu1kbpCc5exkfOPgb29g 提取码: thn5 &#xff08;2&#xff09;方式二&#xff0c;从官网下载 https://www.elastic.co/cn/downloads/past-…