在LabVIEW中利用LabSQL操作ACCESS数据库

  • 格式:doc
  • 大小:156.00 KB
  • 文档页数:3

下载文档原格式

  / 4
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在LabVIEW中利用LabSQL操作ACCESS数据库

有时候想想,网上关于这方面的资料很多,我就不必再写这方面的东西了,可是又想,我遇到的问题,还是要google,baidu 很久,所以,我决定把我遇到的问题整理一下,以供大家参考。

关于LabVIEW,我就不多说了,不知道LabVIEW的人也不会用它来编程,呵呵。

关于ACCESS,可以打电话问微软客服中心。

先说关于LabSQL的废话:

LabSQL 是一个免费的、多数据库、跨平台的LabVIEW 数据库访问工具包。目前的版本是LabSQL Release 1.1,LabSQL 支持Windows 操作系统中任何基于OBDC 的数据库,包括Acess,SQL Server,Orcale,Sybase,MySQL等。LabSQL 是利用Microsoft ADO 以及SQL 语言来完成数据库访问,将复杂的底层ADO 及SQL 操作封装成一系列的LabSQL VIs。利用LabSQL 几乎可以访问任何类型地数据库,执行各种查询,对记录进行各种操作。它的优点是易于理解,操作简单,不熟悉SQL 语言的用户也可以很容易地使用。只需进行简单地编程,就可在LabVIEW 中实现数据库访问。它还有一个最大的优点是源代码开放,并且是全面免费的。(注:LabSQL 的下载网址)。

在ACCESS数据库中,有很多SQL语句都不能执行。ACCESS仅提供了CREATE,INSERT ,UPDATE,DELETE等基本的SQL语句。这样使得在使用过程中我们还需要使用写属性节点来编程。

1. 如何利用LabSQL创建ACCESS数据库?

在LabSQL中总是要指定DSN才能进行操作,因此,创建数据库就不太好办了,我们可以利用LabVIEW中的ActiveX技术来实现:

注意:确定E:\Demo目录是否存在!

当然,方法很多,这里提供一种,仅供参考。

2. 如何利用LabSQL重命名数据表名称?

在其他的数据库里,有专门的重新命名的SQL语句,可是那些语句放到ACCESS有点找不到北了,我采用了下面的方面:

分2步:先把表1里的内容全部拷贝出来,插入到表2;然后删除表1。

3. 如何获取数据表字段名?

可以通过下面的方法获取数据表字段名(Access)

4. 如何获取数据库里所有表的名称?

首先打开面板: 工具>>选项,在视图页中的显示栏把隐藏对象和系统对象显示出来。见下图:

点击确定关闭面板后,可见下图出现些隐藏的数据表:

接下来我们对MSysObjects表进行操作。

结果数组里就是数据库所有用户数据表的名称了。

解决"操作必须使用一个可更新的查询"

原因:

有几个主要的错误原因:

这个错误发生在当你的程序试图执行更新数据库或其它类似操作时。这是因为

ADO由于以下的几个原因而不能够写数据库造成的。

1、最普遍的原因是匿名用户帐号(IUSR_MACHINE)对该数据库文件没有写权限。

要解决这个问题,在管理器中调整数据库文件的属性,让匿名用户有正确的权限。当使用ACCESS数据库时,不仅要给文件写的权限,还要给该目录写的权限,因为Jet需要在该目录建立一个.ldb文件。

2、第二个原因是数据库没有使用正确的模式打开。应该使用下面的方法打开。

SQL = "UPDATE Products Set UnitPrice = 2;"

Set Conn = Server.CreateObject("ADODB.Connection")

Conn.Mode = 3 '3 = adModeReadWrite

Conn.Open "myDSN"

Conn.Execute(SQL)

Conn.Close

注意默认的Mode是设置0(adModeUnknown),它是允许更新的。

3、还有可能是在ODBC管理器中将该DSN的只读选项选中。

4、你是在同时更新两个表中的字段,也会出现这个错误信息,解决办法是分开来更新这两个表中各自字段。

5、当你使用了一个从低版本中(如ACCESS2.0,ACCESS7.0)载入到高版本(ACCESS 2000)中的查询时,在执行这个查询是会出现该错误