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

文章目录

  • 第十二章 以编程方式使用 SQL 网关 - 直接调用 ODBC 函数
  • 直接调用 ODBC 函数
      • 使用 `%SQLGatewayConnection`方法中执行查询

第十二章 以编程方式使用 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 connectset 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 statementset status=gateway.AllocateStatement(.hstmt)if $$$ISERR(status) do $System.Status.DisplayError(status) quit $$$ERROR()// Use %SQLGatewayConnection to call ODBC query functions directlyset 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()
}

注意:空值和空字符串

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

  • SQL中,""代表空字符串。
  • IRIS 中,""等于 null
  • IRIS 中,$char(0) 等于空字符串。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/677718.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用Python动态展示排序算法

文章目录 选择冒泡插入排序归并排序希尔排序 经常看到这种算法可视化的图片,但往往做不到和画图的人心灵相通,所以想自己画一下,本文主要实现归并排序和希尔排序,如果想实现其他算法可参考这篇 C语言实现各种排序算法[选择&#x…

Android:Drawable样式和尺寸单位

3.6 Drawable样式装饰 1、ColorDrawable ColorDrawable:在res/values/color.xml中添加颜色值,然后@color/颜色名获取资源; 示例:color.xml <?xml version="1.0" encoding="utf-8"?><resources><color name="colorPrimary&quo…

Spring基础 - Spring和Spring框架组成

Spring基础 - Spring和Spring框架组成 Spring 特性 非侵入式&#xff1a;基于Spring 开发的应用中的对象可以不依赖于Spring 的API控制反转&#xff1a;IOC&#xff0c;对象的创建权交给Spring去创建依赖注入&#xff1a;依赖的对象不需要手动调用set方法去设置&#xff0c;而…

[C#]winform制作圆形进度条好用的圆环圆形进度条控件和使用方法

【创建圆形进度条流程】 在C# WinForms应用程序中创建一个圆形进度条&#xff08;通常用作仪表盘的显示&#xff09;可以通过多种方式实现。下面是一个简单的例子&#xff0c;演示如何使用System.Drawing命名空间中的图形绘制功能来绘制一个基本的圆形进度条。 首先&#xff0…

基于springboot超市进销存系统源码和论文

随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;超市进销存系统也不例外&#xff0c;但目前国内仍都使用人工管理&#xff0c;市场规模越来越大&#xff0c;同时信息量也越来越庞大&#xff0c;人工管理显然已无法应对时代的变化&#xff0c;而超…

python+django学习交流论坛系统244t6

系统可以提供信息显示和相应服务&#xff0c;其管理员管理用户发布的博客文章以及用户之间的论坛交流信息&#xff0c;管理留言以及文章分类信息。用户在论坛交流模块发布帖子以及评论帖子&#xff0c;在前台查看和评论其他用户发布的博客文章&#xff0c;收藏博客文章&#xf…

【Java多线程案例】实现阻塞队列

1. 阻塞队列简介 1.1 阻塞队列概念 阻塞队列&#xff1a;是一种特殊的队列&#xff0c;具有队列"先进先出"的特性&#xff0c;同时相较于普通队列&#xff0c;阻塞队列是线程安全的&#xff0c;并且带有阻塞功能&#xff0c;表现形式如下&#xff1a; 当队列满时&…

fast.ai 深度学习笔记(四)

深度学习 2&#xff1a;第 2 部分第 8 课 原文&#xff1a;medium.com/hiromi_suenaga/deep-learning-2-part-2-lesson-8-5ae195c49493 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 来自 fast.ai 课程的个人笔记。随着我继续复习课程以“真正”理解它&#xff0c;这…

4核8g服务器能支持多少人访问?- 腾讯云

腾讯云轻量4核8G12M轻量应用服务器支持多少人同时在线&#xff1f;通用型-4核8G-180G-2000G&#xff0c;2000GB月流量&#xff0c;系统盘为180GB SSD盘&#xff0c;12M公网带宽&#xff0c;下载速度峰值为1536KB/s&#xff0c;即1.5M/秒&#xff0c;假设网站内页平均大小为60KB…

HiveQL——不借助任何外表,产生连续数值

注&#xff1a;参考文章&#xff1a; HiveSql一天一个小技巧&#xff1a;如何不借助其他任何外表&#xff0c;产生连续数值_hive生成连续数字-CSDN博客文章浏览阅读1.3k次。0 需求描述输出结果如下所示&#xff1a;12345...1001 问题分析方法一&#xff1a;起始值&#xff08;…

【ASP.NET Core 基础知识】--部署和维护--日志记录和错误处理

一、日志记录(Logging) 1.1 日志记录的概念 日志记录是一种记录系统运行状态、活动和事件的重要机制。在软件开发和系统管理中&#xff0c;日志记录扮演着关键角色&#xff0c;用于追踪应用程序的执行过程、监视系统的健康状况、诊断问题和安全审计等。在ASP.NET Core等现代W…

C#在窗体正中输出文字以及输出文字的画刷使用

为了在窗体正中输出文字&#xff0c;需要获得输出文字区域的宽和高&#xff0c;这使用MeasureString方法&#xff0c;方法返回值为Size类型&#xff1b; 然后计算输出的起点的x和y坐标&#xff0c;就可以输出了&#xff1b; using System; using System.Collections.Generic; …

基于css-vars-ponyfill实现换肤

文章目录 一、换肤二、换肤调研2.1、ElementUI2.2、ant.design 三、换肤痛点和思考四、换肤架构五、换肤技术选型和实现5.1、该方案的亮点和规则5.2、核心原理5.3、色组 & 色值平台设计5.4、获取在当前主题自定义变量颜色 六、总结七、最后 一、换肤 网站或者应用一键切换…

最简单的基于 FFmpeg 的音频编码器(PCM 编码为 AAC)

最简单的基于 FFmpeg 的音频编码器&#xff08;PCM 编码为 AAC&#xff09; 最简单的基于 FFmpeg 的音频编码器&#xff08;PCM 编码为 AAC&#xff09;正文结果工程文件下载其他参考链接 最简单的基于 FFmpeg 的音频编码器&#xff08;PCM 编码为 AAC&#xff09; 参考雷霄骅…

Android SystemConfig相关

SystemConfig在哪里初始化 它声明在PackageManagerService类的静态方法main()中。在该方法中间定义Injector类对象时&#xff0c;作为它的构造参数。它是调用的SystemConfig.getInstance()实现初始化&#xff0c;之后能通过Injector类对象的getSystemConfig()得到SystemConfig类…

MongoDB聚合:$replaceWith

r e p l a c e W i t h ‘ 可以将输入文档替换为指定的文档。该操作可以替换输入文档的所有字段&#xff0c;包括 ‘ i d ‘ 字段。使用 ‘ replaceWith可以将输入文档替换为指定的文档。该操作可以替换输入文档的所有字段&#xff0c;包括_id字段。使用 replaceWith‘可以将输…

nginx添加lua模块

目录 已安装了nginx&#xff0c;后追加lua模块nginx 重新编译知识参考&#xff1a; 从零安装一、首先需要安装必要的库&#xff08;pcre、zlib、openssl&#xff09;二、安装LUA环境及相关库 &#xff08;LuaJIT、ngx_devel_kit、lua-nginx-module&#xff09;注意&#xff1a;…

Python和Java的区别(不断更新)

主要通过几个方面区分Python和Java&#xff0c;让大家有一个对比&#xff1a; 语言类型 Java是一种静态类型、编译型语言。 Python是一种动态类型、解释型语言&#xff0c;注重简洁和灵活的语法。 语法 在Java中&#xff0c;变量需要显式地声明&#xff0c;指定其类型。例如&am…

STM32——OLED(2)

目录 一、OLED显示屏介绍 引脚说明&#xff1a; 二、OLED驱动 1. 基本认识 2. OLED 驱动原理 及过程 三、SSD1306工作时序 (8080时序&#xff09; 1. 8080并口读/写过程 2. SSD1306工作时序 (8080时序) 四、屏幕显示 1. GRAM 补&#xff1a; 2. 画点原理 3. 显示字…

一周学会Django5 Python Web开发-Django5创建项目(用PyCharm工具)

锋哥原创的Python Web开发 Django5视频教程&#xff1a; 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计11条视频&#xff0c;包括&#xff1a;2024版 Django5 Python we…