LabWindows操作SQL SERVER
首要的安装 sqltoolkits.rar,添加 cvi_db.h cvi_db.fp,所有测试环境是LabWindows 2013+SQL SERVER 2008 +WINDOWS7/10
1 全局变量和数据结构
const int channelCount=21; //通道数目int hdbc; //数据库连接
int hstat; //SQL语句执行
long curRecord=0; //当前记录
long sumRecord=0; //记录总数//数据存储类型,每一个结构存储两个通道数据
struct AquireDataType
{ char w1NodeName[30]; //通道名称1 float w1WinSpeed; //风速数据1 float w1EnvTemp; //温度数据1 char w2NodeName[30]; //通道名称2 float w2WinSpeed; //风速数据2 float w2EnvTemp; //温度数据2
};//数据存储数组,每一个结构存储两个通道数据
struct AquireDataType WxpAqurieData[channelCount];
2 数据库连接
//连接数据库
void connectDataBase()
{int nBufSize=MAX_COMPUTERNAME_LENGTH+1;TCHAR chBuf[nBufSize];ZeroMemory(chBuf,nBufSize);DWORD dwRet=nBufSize;GetComputerName(chBuf,&dwRet);char ConnectStr[1000];sprintf(ConnectStr,"Provider=SQLOLEDB;Data Source=%s;Integrated Security=SSPI;Initial Catalog=DQmultiChannelDB",chBuf);//LAPTOP-Q8T047LL SKY-20171206OAShdbc=DBConnect(ConnectStr);
}
3 完成数据插入操作(这里的字段有点多,采用了代码拼接的方式,其实你可以直接写: insert table(item1,item2) values (val1,val2) )
//插入数据进数据库
void inertDataIntoDB()
{char temp[100];char sql[1000]="insert into DQmultiChannel(";char sql2[1000]="";char sql3[1000]="";//拼接字段for(int i=1; i<channelCount; i++){sprintf(temp,"S%02d,T%02d,S%02d,T%02d",2*i-1,2*i-1,2*i,2*i);strcat(sql2,temp);sprintf(temp,"%.2f,%.2f,%.2f,%.2f",WxpAqurieData[i].w1WinSpeed,WxpAqurieData[i].w1EnvTemp,WxpAqurieData[i].w2WinSpeed,WxpAqurieData[i].w2EnvTemp);strcat(sql3,temp);//最后一个加")"if(i==channelCount-1)strcat(sql2,")"),strcat(sql3,")");elsestrcat(sql2,","),strcat(sql3,",");}strcat(sql,sql2);strcat(sql," values (");strcat(sql,sql3);hstat = DBActivateSQL (hdbc,sql);
}
4 数据检索(字段绑定也采用了循环代码的方式)
//从数据库读取数据
void WxpGetDataFromDB()
{ char sql[100];char tt[100];//格式化组建SQL语言字符串 (条件查询)sprintf(sql,"select * from DQmultiChannel%","");//执行SQL语言hstat=DBActivateSQL(hdbc,sql);//绑定字段int count=0;for(int i=1;i<channelCount;i++){DBBindColFloat(hstat,4*i-2,&(WxpAqurieData[i].w1WinSpeed),&count);DBBindColFloat(hstat,4*i-1,&(WxpAqurieData[i].w1EnvTemp),&count);DBBindColFloat(hstat,4*i-0,&(WxpAqurieData[i].w2WinSpeed),&count);DBBindColFloat(hstat,4*i+1,&(WxpAqurieData[i].w2EnvTemp),&count);}DBBindColChar(hstat,82,100,tt,&count,"%s");sumRecord=DBNumberOfRecords(hstat);DBFetchRandom(hstat,curRecord); displayDataTableDB();sprintf(sql,"多通道历史数据 %s" ,tt);SetCtrlAttribute(panelHandleDb,PANELdb_WxpDataTableDB,ATTR_LABEL_TEXT,sql); sprintf(sql,"当前记录 %d / %d" ,curRecord,sumRecord);SetCtrlVal(panelHandleDb,PANELdb_DataBaseInfor,sql); //查询执行完毕DBDeactivateSQL(hstat);
}
5 彻底关闭数据库连接
DBDisconnect(hdbc);
LabWindows操作SQL SERVER相关推荐
- C# 学习笔记(19)操作SQL Server下
C# 学习笔记(19)操作SQL Server下 ADO.net操作数据库 这应该是比较老的技术了,以后有空的话学学 Linq /// <summary> /// 数据库使用类 /// & ...
- C# 学习笔记(18)操作SQL Server 中
C# 学习笔记(18)操作SQL Server 中 数据库基础操作 SQL语法可以参考 菜鸟教程 或者微软官方的SQL示例 注意SQL不区分大小写 查 1.基础查询 --最基础的查询语句, selec ...
- C# 学习笔记(17)操作SQL Server 上
C# 学习笔记(17)操作SQL Server上 安装SQL Server 微软官网 https://www.microsoft.com/zh-cn/sql-server/sql-server-dow ...
- python3连接sql server数据库_Python3操作SQL Server数据库(实例讲解)
1.前言 前面学完了SQL Server的基本语法,接下来学习如何在程序中使用sql,毕竟不能在程序中使用的话,实用性就不那么大了. 2.最基本的SQL查询语句 python是使用pymssql这个模 ...
- C#操作SQL Server数据库
C#操作SQL Server数据库 1.概述 2.连接字符串的写法 3.SqlConnection对象 4.SqlCommand对象 5.SqlDataReader对象 6.DataSet对象 7.释 ...
- 操作 SQL Server Mobile 2005 数据库的常用 C# 代码 (转自黎波)
整理几段操作 SQL Server Mobile 数据库的常用 C# 代码,供刚刚接触 SQL Server Mobile 开发的朋友参考. 1. 创建数据库 // 创建数据库 File.Delete ...
- python调用sql数据库_Python3操作SQL Server数据库(实例讲解)
1.前言 前面学完了SQL Server的基本语法,接下来学习如何在程序中使用sql,毕竟不能在程序中使用的话,实用性就不那么大了. 2.最基本的SQL查询语句 python是使用pymssql这个模 ...
- 使用C语言来操作SQL SERVER数据库
本文转自 http://simpledev.iteye.com/blog/339537 1.使用C语言来操作SQL SERVER数据库,采用ODBC开放 ...
- Excel VBA通过ADO连接、操作SQL Server数据库的自定义函数
网上大多数有关VBA连接.操作SQL Server数据库的教程,大多是把连接字串.SQL语句.执行过程全写在一个过程中了,当一个VBA项目需要做大量的查询.更新数据时,显然这种方法并不合适,以下代码是 ...
- C# 操作Sql Server 学习总结
C#中产生SQL语句的几种方式 (1)拼接产生SQL语句: string sql = "insert into czyb(yhm,mm,qx) values('" + txtNam ...
最新文章
- SVN状态图标不显示的两种解决办法
- Java程序员必须了解的JVM性能调优知识,全都在这里了
- 一篇文章搞定Linux基础操作
- codeforces B. Strongly Connected City(dfs水过)
- PyCharm——如果不小心修改了第三方库文件,怎么办?
- shell中exec命令
- ubuntu下有没有类似于imagewatch的软件_大家有没有什么好的app推荐下,学习的类似timing小众点的?...
- 牛客寒假算法基础集训营2 A 处女座的签到题及一丢丢nth_elemen容器的简单用法...
- 小石坝第一次月赛:A
- 系统工具-文件夹同步软件
- Java eclipse汉字乱码解决
- mysql 56做什么_震惊!从MySQL56到57,到底发生了什么?
- 基于51单片机汽车智能灯光控制系统设计
- 解读《美国国家BIM标准》 – BIM能力成熟度模型(四)
- SQL server 删除注册表
- Office卸载不干净,注册表项权限修改后仍然无法删除的问题
- Unity3D for Android 纹理压缩支持
- 2016年个人工作总结、生活总结 和 2017年个人工作计划、生活计划
- 词向量经典模型:从word2vec、glove、ELMo到BERT
- CSS基础知识学习笔记