在开发项目时,经常需要与数据库打交道,LabVIEW 作为一款功能强大的开发工具,提供了与 Access 和 SQL Server 数据库交互的便捷方式。
一、LabVIEW 操作 Access 数据库
创建表格
Access 数据库小巧灵活,适合小型项目。在 LabVIEW 中创建 Access 表格,代码如下:
// 打开数据库连接:Database Connectivity - Open Database.vi
// 连接字符串示例:"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\YourPath\YourDatabase.accdb"
// 创建表格 SQL 指令:String Constant = "CREATE TABLE Employees ( ID AUTOINCREMENT PRIMARY KEY, Name TEXT(50), Age INTEGER )"
// 执行 SQL:Database Connectivity - Execute SQL.vi
这段代码中,Database Connectivity - Open Database.vi 用于打开与 Access 数据库的连接,连接字符串指明了数据库的类型(这里是 Access 2007 及以上版本使用的 ACE 引擎)以及数据库文件的路径。Database Connectivity - Execute SQL.vi 则负责执行创建表格的 SQL 语句。通过这个语句,我们创建了一个名为 Employees 的表格,包含 ID(自增长主键)、Name(文本类型,最大长度 50)和 Age(整数类型)字段。

读写数据
数据的读写是数据库操作的核心。写入数据示例代码:
// 打开数据库连接:Database Connectivity - Open Database.vi
// 插入数据 SQL 指令:String Constant = "INSERT INTO Employees (Name, Age) VALUES ('John', 30)"
// 执行 SQL:Database Connectivity - Execute SQL.vi
这里的 SQL 语句使用 INSERT INTO 语法,将一条新记录插入到 Employees 表格中,记录的 Name 为 John,Age 为 30。

读取数据稍微复杂一点,示例如下:
// 打开数据库连接:Database Connectivity - Open Database.vi
// 查询数据 SQL 指令:String Constant = "SELECT * FROM Employees"
// 执行 SQL:Database Connectivity - Execute SQL.vi
// 获取结果集:Database Connectivity - Fetch Data.vi
这段代码首先通过 SELECT * FROM Employees 查询语句获取 Employees 表格中的所有数据,Execute SQL.vi 执行该查询并返回结果集,Fetch Data.vi 则从结果集中提取实际的数据供后续程序使用。
按时间段读取
假设我们的表格中有一个日期字段,比如记录员工入职日期,现在要按时间段读取员工数据。假设表格中有一个 HireDate 字段存储入职日期。
// 打开数据库连接:Database Connectivity - Open Database.vi
// 定义开始日期和结束日期:Date/Time Constant
// 构建 SQL 查询语句:String Concatenate.vi
// SELECT * FROM Employees WHERE HireDate BETWEEN # + Format Date/Time String.vi(StartDate, "yyyy-mm-dd") + # AND # + Format Date/Time String.vi(EndDate, "yyyy-mm-dd") + #
// 执行 SQL 并获取结果集:Database Connectivity - Execute SQL.vi, Database Connectivity - Fetch Data.vi
这段代码通过 BETWEEN...AND... 条件筛选出在指定时间段内入职的员工记录。Format Date/Time String.vi 函数将日期时间格式化为符合 SQL 查询要求的字符串格式。
读取表格名称
有时候我们需要获取数据库中所有表格的名称,在 LabVIEW 里这样实现:
// 打开数据库连接:Database Connectivity - Open Database.vi
// 获取表格名称 SQL 指令:String Constant = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'"
// 执行 SQL:Database Connectivity - Execute SQL.vi
// 获取表格名称数据:Database Connectivity - Fetch Data.vi
INFORMATION_SCHEMA.TABLES 是 Access 数据库系统表,通过查询这个表,筛选出 TABLE_TYPE 为 BASE TABLE(普通用户创建的表格)的记录,其 TABLE_NAME 字段就是我们想要的表格名称。
二、LabVIEW 操作 SQL Server 数据库
SQL Server 一般用于中大型项目,功能更强大。确保服务器安装了 SQL Server 软件,并且配置好远程访问。
创建表格
操作 SQL Server 创建表格代码如下:
// 创建数据库连接:Database Connectivity - Open Database.vi
// 连接字符串示例:"Driver={SQL Server Native Client 11.0};Server=YourServerName;Database=YourDatabase;Uid=YourUsername;Pwd=YourPassword"
// 创建表格 SQL 指令:String Constant = "CREATE TABLE Products ( ProductID INT PRIMARY KEY, ProductName NVARCHAR(100), Price MONEY )"
// 执行 SQL:Database Connectivity - Execute SQL.vi
这里的连接字符串使用了 SQL Server Native Client 11.0 驱动,Server 指明服务器名称,Database 是数据库名称,Uid 和 Pwd 分别是登录用户名和密码。创建表格的 SQL 语句和 Access 类似,但数据类型有些不同,比如 NVARCHAR 用于存储 Unicode 字符串,MONEY 用于存储货币类型数据。
部分 SQL 指令操作
例如执行一个简单的更新操作,更新产品价格:
// 打开数据库连接:Database Connectivity - Open Database.vi
// 更新数据 SQL 指令:String Constant = "UPDATE Products SET Price = Price * 1.1 WHERE ProductID = 1"
// 执行 SQL:Database Connectivity - Execute SQL.vi
这段代码将 ProductID 为 1 的产品价格提高了 10%,UPDATE 语句在 SQL Server 中用于修改表中的数据。

LabVIEW 与 Access 和 SQL Server 数据库的交互为项目开发提供了极大的便利,无论是小型数据管理还是大型企业级应用,都能通过这些方法实现高效的数据处理。


