如何访问 Visual Basic 组件中的 COM + 对象构造函数字符串

文章翻译 文章翻译
文章编号: 271284 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

在 Microsoft Windows 2000 中,您可以配置为安装在 COM + 运行时中的每个动态链接库 (DLL) 组件的唯一对象构造函数字符串。此构造函数字符串通常用于指定所需的可访问的组件的所有对象实例初始化字符串。本文包括一个代码示例,演示了如何配置 COM + 对象构造函数字符串的组件的对象实例可以使用 Visual Basic 组件。

更多信息

构造函数字符串通常用于指定组件的对象实例用于建立数据库连接的数据库连接字符串。为此目的使用构造函数字符串的优点是它防止连接字符串硬编码组件的代码中。若要将该数据库服务器名称指向另一个数据库,或实现其他的修改您只需修改组件的 COM + 对象构造函数 ; 您不能更改该组件的代码和重新编译实际的 DLL。除了存储数据库连接信息,您也可以使用 COM + 对象构造函数字符串指定需要访问的组件为其配置的所有对象实例的任何初始化字符串。

如何配置 COM + 对象构造函数字符串

在 Visual Basic 组件应实现 IObjectConstruct COM + 界面,以启用访问 COM + 对象构造函数字符串已为它配置的对象实例。IObjectConstruct 公开一个命名构造 (IObjectConstruct_Construct) 将触发时创建该组件的对象实例的方法。您可以使用该构造函数的对象作为参数传递给此方法以获取配置的 COM + 对象构造函数字符串。若要实现一个示例,演示如何此功能,请执行以下步骤:
  1. 在 Visual Basic 中打开一个新的 ActiveX DLL 项目。
  2. 重命名项目"prjConstruct"。
  3. 重命名类模块"clsConstruct"。
  4. 设置对 COM + 服务库ActiveX 数据对象 2.5 库 的项目引用。
  5. 复制并粘贴以下代码在类模块中:
    'General Declarations Section
    Implements IObjectConstruct
    Dim connstr As String
    
    
    Private Sub IObjectConstruct_Construct(ByVal pCtorObj As Object)
    
    Dim mConstructString As IObjectConstructString
    Set mConstructString = pCtorObj
    connstr = mConstructString.ConstructString
    
    End Sub
    
    Public Function GetAuthors() As ADODB.Recordset
    
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    
    Set cn = New ADODB.Connection
    cn.Open connstr
    
    Set rs = New ADODB.Recordset
    rs.CursorLocation = adUseClient
    rs.Open "Select * from Authors", cn, adOpenStatic, adLockBatchOptimistic
    Set rs.ActiveConnection = Nothing
    
    Set GetAuthors = rs
    GetObjectContext.SetComplete
    
    End Function
    						
    此代码示例演示如何实现 IObjectConstruct_Construct 访问 COM + 对象构造函数字符串。在 构造 对象参数必须为 IObjectConstructString 接口强制转换。IObjectConstructString 公开一个名为 ConstructString 可用于访问 COM + 对象构造函数字符串的属性。请注意分配给全局变量和 GetAuthors 函数中重复使用构造函数字符串的方式。
  6. 编译 DLL。若要进行 COM + 服务器应用程序的宿主 prjConstruct.clsConstruct 组件,请按照下列步骤操作:
    1. 在 $ 控制面版中指向 管理工具,然后单击 组件服务,打开组件服务 Microsoft 管理控制台 (MMC) 管理单元。
    2. 单击以展开 组件服务计算机我的电脑,和 COM + 应用程序 的节点。单击 COM + 应用程序
    3. 用鼠标右键单击 COM + 应用程序,指向 新建,然后再单击 应用程序
    4. 创建名为 VBComPlusTest,一个空的服务器端应用程序并设置其标识属性使用交互式用户的凭据。
    5. 完成向导,然后单击 完成。这将创建示例 COM + 应用程序用来承载 prjConstruct.clsConstruct Visual Basic 组件。
  7. 在"VBComPlusTest"COM + 应用程序中安装 prjConstruct.clsConstruct 组件,请按照下列步骤操作:
    1. 在组件服务 MMC 管理单元中,单击以展开 VBComPlusTest 节点。单击 组件 子文件夹。
    2. 用鼠标右键单击 组件,指向 新建,然后再单击 组件
    3. COM 组件安装向导中,单击 下一步,单击 安装新组件,和选择 prjConstruct.dll,然后单击 下一步
    4. 完成向导,然后单击 完成
  8. 打开 Visual Basic 组件 prjConstruct.clsConstruct 的属性窗口。
  9. 激活 选项卡上选择 启用对象构造 复选框。
  10. 构造函数字符串 框中指定下面的 ADO 连接字符串,然后单击 确定

    : 此示例使用 Microsoft SQL Server PUBS 示例数据库
    "Provider=SQLOLEDB;Data Source=<Your SQL Server>;Initial Catalog=pubs;" & _
                       "User Id=<User Id>;Password=<Password>"
    					

如何使用 COM + 对象构造函数字符串

  1. 若要测试 Visual Basic COM + 组件的 Visual Basic 中打开一个新的标准 EXE 项目。默认情况下创建 Form1。
  2. 向 Form1 中添加列表框 (List1) 和一个命令按钮 (Command1)。
  3. 复制并粘贴以下代码的 Command1 事件中:
    Dim obj As Object
    Dim rs As Object
    
    Set obj = CreateObject("prjConstruct.clsConstruct")
    Set rs = obj.GetAuthors()
    Do While Not rs.EOF
      List1.AddItem rs.fields("au_fname")
      rs.movenext
    Loop
    
    Set obj = Nothing
    					
  4. 保存在标准 EXE 项目并运行它。
  5. 单击填充作者表中的所有作者的名字列表框的 Command1
若要演示的 COM + 对象构造函数字符串用途,更改以指向一个不同的 SQL Server 还具有 PUBS 示例数据库的构造函数字符串中的 数据源 属性。您在运行客户端代码时都检索新数据源中的记录并将其显示。为此确认第二个 SQL Server PUBS 数据库中的作者表中添加新记录。

属性

文章编号: 271284 - 最后修改: 2004年6月29日 - 修订: 1.2
这篇文章中的信息适用于:
  • Microsoft Visual Basic 5.0 专业版
  • Microsoft Visual Basic 6.0 专业版
  • Microsoft Visual Basic 5.0 企业版
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
关键字:?
kbmt kbhowto kbmdacnosweep KB271284 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 271284
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com