65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 ADO 执行存储过程的通用数据库类

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.50/5 (7投票s)

2001年2月21日

viewsIcon

94670

downloadIcon

4154

使用这个类来隐藏所有数据库调用,调用者无需关心。没有人需要关心数据库检索是如何进行的!

引言

这是一个有用的工具,可以最大限度地减少与数据库相关的代码。只需按照一些步骤使用 CDatabaseServer,您会发现它对您的项目非常有用。

要求

  1. 您的数据库检索必须依赖于存储过程。
  2. 必须在运行此代码的同一台机器上安装 SQL Server。

解释

撰写本文的原因是我们的数据库应用程序在某种程度上存在冗余代码,并可能导致问题。例如,ADO 库,当我们需要对数据库进行调用时使用它。通常,我们的做法是,当我们从数据库需要数据时,每次都打开连接,并每次在 RecordSet 对象中获取数据...

我尝试实现一个类,它将满足传入或传出的数据库调用请求。

当你在 C++ 应用程序中使用它时,你们会真正享受它的。我建议你按照以下步骤操作

  • 对于你的数据库项目,添加提供的两个文件,databaserver.hdatabaserver.cpp
  • 每当你需要数据时,调用 CDatabaseServer 的方法 getExecStoredProcedure,并正确放置参数。该方法将使用 ADO RecordsetGetRows 方法返回 VARIANT 数组,以便可以正确地编组数据。
  • 每当你需要插入/更新数据时,调用 CDatabaseServer 的方法 setExecStoredProcedure。该方法将返回一个 long 值,该值可以是执行操作的 ID 实体。
  • 现在,你需要手动在方法 SetConnectionsting 中更新你的连接信息。
  • 在 SQL Server 中创建数据库,在 setConnectionsting 方法中修改局部变量 szDatabase,并使用新创建的数据库名称。
  • 调用 getExecStoredProcedure/setExecStoredProcedure 时,请务必小心发送正确的存储过程名称及其在 SAFEARRAY 指针中的参数。
  • 参数必须与存储过程中的顺序相同。

如有任何问题,请随时提问,如果你们有更好的建议,请在下方留言。

历史

  • 2001年5月4日:初始版本

许可证

本文没有明确的许可证附加到它,但可能包含文章文本或下载文件本身中的使用条款。如有疑问,请通过下面的讨论区联系作者。作者可能使用的许可证列表可以在 此处 找到。

© . All rights reserved.