DDE 接口数据库使用相关.doc_第1页
DDE 接口数据库使用相关.doc_第2页
DDE 接口数据库使用相关.doc_第3页
DDE 接口数据库使用相关.doc_第4页
DDE 接口数据库使用相关.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DDE 服务器使用客户端具有 支持动态数据交换 (DDE) 作为一个目标(客户)应用程序或源(服务器)应用程序。例如,一个作为客户的应用程序,如 Microsoft Word,可以通过 DDE,从一个作为服务器的 Microsoft Access 或者是IOServer数据库来请求数据。IOServer DDE interfaceApplication NameIOSDDETopic NameAny Topic Name will be accepted as valid. Should allocate a topic for each device.Update RateThe initial update rate of all Topics is IOServer Preferences-DDE Settings-Update Rate. The update of each Topic can be individually set by writing to IOSDDE|TOPIC!UPDATERATE. e.g. Poking 100 to IOSDDE|RTU12!UPDATERATE will set the update rate for Topic RTU12 to 100ms. Using IOServer with ExcelTo display a 10x10 array from the Modbus Device Master.1. Select a 10 by 10 area.2. Type in =IOSDDE|modbus!Master.4000110103. Press Ctrl-Shift-EnterExample of a function to write the value at worksheet OPC.A4 to Master.40001Sub TagWrite()Dim rangeToPokeDim channelchannel = Application.DDEInitiate(IOSDDE, Group)Set valueToPoke = Worksheets(OPC).Range(A4)Application.DDEPoke channel, Master.40001, valueToPokeApplication.DDETerminate channelEnd Sub如下是其他的一些相关DDE接口的例子:提示 如果要操作另一个应用程序中的 Microsoft Access 对象,需要使用自动化。客户和服务器之间的 DDE 对话是建立在特定的主题上的。主题可以是由服务器应用程序所支持格式的数据文件,也可以是提供有关服务器应用程序本身信息的 System 主题。一旦开始了特定主题的对话,就只能传送与那个主题相关的数据项。例如,如果正在运行 Microsoft Word,并要将一个特定的 Microsoft Access 数据库中的数据插入到文档中,可以先使用 DDEInitiate 函数将 DDE 通道打开,并将数据库文件名称指定为主题,然后开始与 Microsoft Access 的 DDE 对话。通过该通道,可以将数据库中的数据传送给 Microsoft Word 文档。作为 DDE 服务器, Microsoft Access 支持以下主题: System 主题数据库名称 (database 主题)表名称 (tablename 主题)查询名称 (queryname 主题)Microsoft Access SQL 字符串(sqlstring 主题) 一旦建立了 DDE 对话,就可以使用 DDEExecute 语句将命令从客户发送到服务器应用程序。在作为 DDE 服务器使用时, Microsoft Access 将以下命令均识别为有效命令: 当前数据库中的宏名称。在 Visual Basic 中,通过使用 DoCmd 对象的某个方法,可以执行的任何操作。只为 DDE 运算而使用的 OpenDatabase 和 CloseDatabase 操作(如何使用这些操作,请参阅该主题以后的示例)。 注意 当将一个宏操作指定为一个 DDEExecute 语句时,该操作和所有的参数均遵循 DoCmd 对象的语法且必须包含在方括号( )中。但支持 DDE 的应用程序不识别 DDE 运算中的固有常量。同样,如果字符串包含逗号,则必须将该字符串参数包括在引号 ( )中。否则,就不需要引号。客户应用程序使用 DDERequest 函数,可以向由打开的 DDE 通道传送的服务器应用程序请求文本数据。反之,客户使用 DDEPoke 语句可以将数据发送到服务器应用程序。在数据传送完成以后,客户可以使用 DDETerminate 语句关闭 DDE 通道,或使用 DDETerminateAll 语句关闭所有打开的通道。注意 当客户应用程序完成了从 DDE 通道接收数据后,应关闭该通道以节省内存资源。以下示例将演示,如何将 Microsoft Access 用作为一个 DDE 服务器,以使用 Visual Basic 来创建 Microsoft Word 过程。(必须正在运行 Microsoft Access ,才能使该示例工作。)Sub AccessDDE() Dim intChan1 As Integer, intChan2 As Integer Dim strQueryData As String 使用“系统”主题,打开“罗斯文”示例数据库。 必须在使用其他 DDE 主题之前已打开数据库。 intChan1 = DDEInitiate(MSAccess, System) 可能需要将此路径更改为“罗斯文” 示例数据库的路径。 DDEExecute intChan1, OpenDatabase C:AccessSamplesNorthwind.mdb 从“十种最贵的产品”查询中获得所有数据。 intChan2 = DDEInitiate(MSAccess, Northwind.mdb; _ & QUERY Ten Most Expensive Products) strQueryData = DDERequest(intChan2, All) DDETerminate intChan2 关闭数据库。 DDEExecute intChan1, CloseDatabase DDETerminate intChan1 将检索的数据印打印到“调试”窗口。 Debug.Print strQueryDataEnd Sub有关将 Microsoft Access 用于 DDE 客户端的内容,请参阅Microsoft Office 2000/Visual Basic Programmers Guide中的信息。有关获得Microsoft Office 2000/Visual Basic Programmers Guide的内容,请单击 。以下节提供有关 Microsoft Access 支持的有效 DDE 主题方面的信息。System 主题System 主题是一个针对所有基于 Microsoft Windows 应用程序的标准主题。它提供由应用程序所支持的其他主题的信息。要访问该信息,所用代码必须先以 System 作为 topic 参数调用 DDEInitiate 函数,然后用下面为 item 参数提供的选项之一执行 DDERequest 语句。项目 返回 SysItems Microsoft Access 中的 System 主题所支持的项目列表。 Formats Microsoft Access 可以拷贝到“剪贴板”上的格式列表。 Status “Busy”或“Ready”。 Topics 所有已打开的数据库列表。 以下示例演示具有 System 主题的 DDEInitiate 和 DDERequest 函数的使用: 在 Visual Basic 中,使用 Microsoft Access 初始化 DDE 会话。Dim intChan1 As Integer, strResults As StringintChan1 = DDEInitiate(MSAccess, System) 请求“系统”主题支持的主题。strResults = DDERequest(intChan1, SysItems) 运行 OpenDatabase 操作,打开 Northwind.mdb。 可能需要将此路径更改为“罗斯文”示例数据库 实际位置。DDEExecute intChan1, OpenDatabase C:AccessSamplesNorthwind.mdbdatabase 主题database 主题是某个已存在数据库的文件名。可以只键入基本名称 (Northwind),也可以外加其完整路径和 .mdb 扩展名 (C:AccessSamplesNorthwind.mdb)。在开始了与该数据库的 DDE 对话以后,可以申请该数据库中的对象列表。注意 不能使用 DDE 来查询 Microsoft Access 工作组信息文件。database 主题支持以下项目。项目 返回 TableList 表列表。 QueryList 查询列表。 FormList 窗体列表。 ReportList 报表列表。 MacroList 宏列表。 ModuleList 模块列表。 ViewList 视图列表。 StoredProcedureList 存储过程列表。 DatabaseDiagramList 数据库图表列表。 以下示例显示如何打开在 Visual Basic 过程中的“罗斯文”示例数据库里的“雇员”窗体: 在 Visual Basic 中,使用“罗斯文” 示例数据库初始化 DDE 会话。 请确定数据库已打开。intChan2 = DDEInitiate(MSAccess, Northwind) 请求“罗斯文”示例数据库中窗体的列表。strResponse = DDERequest(intChan2, FormList) 运行 OpenForm 操作和参数,打开“雇员”窗体。DDEExecute intChan2, OpenForm 雇员,0,1,0TABLE tablename、QUERY queryname 和 SQL sqlstring 主题这些主题使用以下语法:databasename; TABLE tablenamedatabasename; QUERY querynamedatabasename; SQL sqlstring组成部分 说明 databasename 表或查询所在的或 SQL 语句应用到的数据库名称,后接一个分号 (;)。该数据库名称可以只是基本名称 (Northwind),也可以外加其完整路径和 .mdb 扩展名 (C:AccessSamplesNorthwind.mdb)。 tablename 某个现有表的名称。 queryname 某个现有查询的名称。 sqlstring 一个以分号结尾的有效 SQL 语句,可长达 256 个字符。若要交换的字符多于 256 个,忽略该参数而使用后继的 DDEPoke 语句来建立 SQL 语句。 例如,以下的 Visual Basic 代码使用 DDEPoke 语句来建立 SQL 语句,然后请求查询结果。 intChan1 = DDEInitiate(MSAccess, Northwind;SQL)DDEPoke intChan1, SQLText, SELECT *DDEPoke intChan1, SQLText, FROM OrdersDDEPoke intChan1, SQLText, WHERE Freight 100;strResponse = DDERequest(intChan1, NextRow)DDETerminate intChan1 下表列出了 TABLE tablename, QUERY queryname 和 SQL sqlstring 主题的有效项目。项目 返回 All 表中的所有数据,包括字段名。 Data 所有数据行,不含字段名。 FieldNames 字段名单行列表。 FieldNames;T 字段名(第一行)及其数据类型(第二行)的两行列表。 这些是返回的值和它们代表的数据类型: 值 数据类型 0 Invalid 1 True/False (non-Null) 2 Unsigned byte 3 2-byte signed integer (Integer) 4 4-byte signed integer (Long) 5 8-byte signed integer (Currency) 6 4-byte single-precision floating-point (Single) 7 8-byte double-precision floating-point (Double) 8 Date/Time 9 二进制数据,最多 256 字节 10 ANSI 文本,不分大小写,最多 256 字节(文本) 11 Long binary (OLE Object) 12 Long text (Memo) NextRow 表或查询中下一行的数据。当打开一个通道, NextRow 返回第一行中的数据。如果当前行是最后记录,运行 NextRow,请求就会失败。 PrevRow 表或查询中上一行的数据。如果 PrevRow 是新通道中的第一个请求,该表或查询的最后一行中的数据返回。如果第一个记录是当前行, PrevRow 请求就会失败。 FirstRow 表或查询中第一行的数据。 LastRow 表或查询中最后一行的数据。 FieldCount 表或查询中的字段数目。 SQLText 代表表或查询的 SQL 语句。对表,该项目返回窗体 SELECT * FROM table; 中的一个 SQL 语句。 SQLText;n 一个 SQL 语句, n-字符块大小,代表该表或查询,其中 n 是可以到 256 的整数。例如,假设一个查询由以下 SQL 语句代表: SELECT * FROM Orders;项目 SQLText;7 返回以下表分隔块:SELECT * FROM Orders; 以下示例显示如何使用 Visual Basic 过程中的 DDE ,以请求“罗斯文”示例数据库的表中的数据,并将该数据插入到文本文件中:Sub NorthwindDDE Dim intChan1 As Integer, intChan2 As Integer, intChan

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论