当前位置:   article > 正文

第十二章 以编程方式使用 SQL 网关 - 直接调用 ODBC 函数

第十二章 以编程方式使用 SQL 网关 - 直接调用 ODBC 函数

第十二章 以编程方式使用 SQL 网关 - 直接调用 ODBC 函数

直接调用 ODBC 函数

如果%SQL.Statement 不能提供足够的控制,可以使用 %SQLGatewayConnection直接访问 ODBC。它提供了一组与 ODBC 函数相对应的方法以及其他实用程序函数。可以连接并使用兼容ODBC数据库,然后执行低级 ODBC 编程。整体流程如下:

  1. 通过 %New() 方法创建 %SQLGatewayConnection的实例。
  2. 调用该实例的 Connect() 方法,传递指定 ODBC 数据源名称的参数,以及登录该源所需的用户名和密码(如有必要)。
  3. 调用 AllocateStatement() 方法并接收(通过引用)语句句柄。
  4. 使用该语句句柄作为参数调用 SQL Gateway 实例的其他方法。大多数这些方法调用 ODBC 函数。

以下简单示例演示了此过程。它与上一节中的示例类似,但它在版本的Prepare()Execute()中使用%SQLGatewayConnection直接调用ODBC查询函数SQLPrepare()SQLExecute(),而不是使用%SQL .Statement方法:

使用 %SQLGatewayConnection方法中执行查询

ClassMethod ExecuteQuery(mTable As %String)
{
   set mDSN="DSNtest"
   set mUsrName="SYSDBA"
   set mUsrPwd="masterkey"

   // Create an instance and connect
   set gateway=##class(%SQLGatewayConnection).%New()
   set status=gateway.Connect(mDSN,mUsrName,mUsrPwd)
   if $$$ISERR(status) do $System.Status.DisplayError(status) quit $$$ERROR()
   set hstmt=""

   // Allocate a statement
  set status=gateway.AllocateStatement(.hstmt)
   if $$$ISERR(status) do $System.Status.DisplayError(status) quit $$$ERROR()

   // Use %SQLGatewayConnection to call ODBC query functions directly
   set status=gateway.Prepare(hstmt,"SELECT * FROM "_mTable)
   if $$$ISERR(status) do $System.Status.DisplayError(status) quit $$$ERROR()
   set status=gateway.Execute(hstmt)

   if $$$ISERR(status) do $System.Status.DisplayError(status) quit $$$ERROR()
   quit gateway.Disconnect()
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

注意:空值和空字符串

当使用本章中描述的方法时,请记住 IRISSQL 具有以下重要区别:

  • SQL中,""代表空字符串。
  • IRIS 中,""等于 null
  • IRIS 中,$char(0) 等于空字符串。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/80443
推荐阅读
相关标签
  

闽ICP备14008679号