0 关注者 · 18 帖子

开放式数据库连接 (ODBC) 是用于访问数据库管理系统的标准应用程序编程接口 (API)。

了解更多信息

文章 姚 鑫 · 二月 18 2m read

第二十八章 T 开头的术语

以 T 开头的术语

表 (table)

InterSystems SQL

表是一种由表示特定实体的行和表示每个实体特定数据点的列组成的数据结构。

目标角色 (target role)

系统

在受保护的 IRIS 应用中,由应用程序授予给已经是其他角色(称为匹配角色)成员的用户的角色。如果用户拥有匹配角色,则在使用应用程序时,用户还可以被授予一个或多个额外的目标角色。

目标用户 (target user)

系统

试图认证到 LDAP 服务器的用户。IRIS 通过在特定 LDAP 配置的“编辑 LDAP 配置”页面上的 LDAP 唯一搜索属性字段中使用提供的值,尝试在 LDAP 数据库中查找该用户。可以从 LDAP 配置页面(系统管理 > 安全 > 系统安全 > LDAP 配置)访问“编辑 LDAP 配置”页面。(请注意,如果启用了 Kerberos,页面名称和菜单选项中会包含 Kerberos。)

TCP/IP

通用

传输控制协议/互联网协议(Transmission Control Protocol/Internet Protocol),是可以管理关系客户端和关系服务器之间连接的通信协议之一。也称为 TCP

临时全局 (temporary global)

系统

存储在临时数据库 IRISTEMP 中的全局。请参见临时全局和 IRISTEMP 数据库。

终端 (Terminal)

系统

0
0 0
文章 姚 鑫 · 二月 17 2m read

第二十七章 S 开头的术语

存储接口 (storage interface)

对象(Objects)

使用自定义存储或编写自己的存储类时必须实现的一组方法。

存储策略 (storage strategy)

对象(Objects)

类使用的存储策略在编译时评估为存储定义,决定数据的存储方式。

存储过程 (stored procedure)

SQL

存储过程允许你从 ODBCJDBC 执行查询或类方法。

流接口 (stream interface)

对象(Objects)

IRIS 流接口用于在 ObjectScriptSQLJava 中操作流。

流 (stream)

对象(Objects)

流提供了一个接口,用于操作和存储大量数据。IRIS 流接口可在 ObjectScriptSQLJava 中用于操作流。

超级服务器 (superserver)

系统

监听指定端口的服务器,用于接收对 IRIS 的传入连接并将其分发到适当的子系统。默认的超级服务器端口是 1972;如果 1972 不可用,超级服务器将从 51773 开始监听下一个可用端口。要设置超级服务器端口号,请使用管理门户(系统管理 > 配置 > 系统配置 > 内存和启动)中的内存和启动页面的超级服务器端口号字段。

滑动 (swizzling)

对象(Objects)

当嵌入和持久对象被引用时,自动将其拉入内存的过程。也称为懒加载。

0
0 0
文章 Michael Lei · 七月 7, 2024 1m read

InterSystems 常见问题系列FAQ

如果要让超时功能失效, 在DSN设置查询超时为disabled:

Windows Control Panel > Administrative Tools > Data Sources (ODBC) > System DSN configuration

如果勾选了Disable query timeout , 超时就会失效.

如果想在应用侧修改,你可以在ODBC API 层设置:在连接数据源之前,调用ODBC SQLSetStmtAttr功能设置SQL_ATTR_QUERY_TIMEOUT 属性 

0
0 0
文章 Meng Cao · 十一月 23, 2023 2m read
  • 前言 

        随着网络安全日益被重视,特别是等级保护制度的大环境下,SSL加密传输越来越被重视,本文介绍如何使用支持SSL的ODBC连接IRIS数据库。

        数据库版本:IRISHealth-2023.1

  • 1. 服务器端配置

       1)新建SSL服务器配置。

    

         2)开启超级端口的SSL支持,这里我们选择启用即可,如所有超级端口的连接都支持SSL可选要求。

       

  • 2.Windows客户端配置

       1)创建 SSLDefs.ini 配置文件,并编辑内容:

       [TLS to an InterSystems IRIS instance]
       Address=127.0.0.1
       Port=51773
       SSLConfig=DHCC

5
3 501
文章 he hf · 四月 24, 2023 2m read

SqlDbx是我们常用的数据库查询与操作工具,因其轻量且无须安装而无处不在,然而习惯了在Intersystems的CACHE和ENSEMBLE版本下使用SqlDbx在升级到IRIS版本后却无法使用了,为此进行了一系列尝试,并最终获得成功,形成本文攻略,分享给大家。

1、在SqlDbx的连接登录窗口,从DBMS Type中直接选择 “InterSystems CACHE”连接IRIS会报错,提示“通过IRISconnect失败”,说明“InterSystems CACHE”不再适用于IRIS。

2、考虑IRIS的ODBC支持,为此换一种思路,采用ODBC方式连接,此方式需要在ODBC中建立DSN。

3、从Intersystems官网https://intersystems-community.github.io/iris-driver-distribution/或github网站https://github.com/intersystems-community/iris-driver-distribution/tree/...下载InterSystems IRIS ODBC 32位驱动,注意一定要下载32位驱动(注:SqlDbx现只支持32位的ODBC)。

4、下载后直接安装即可。

2
0 1522
文章 Michael Lei · 九月 18, 2023 6m read

如今,关于大语言模型、人工智能等的消息不绝于耳。向量数据库是其中的一部分,并且已经有非IRIS的技术实现了向量数据库。

为什么是向量?

  • 相似性搜索:向量可以进行高效的相似性搜索,例如在数据集中查找最相似的项目或文档。传统的关系数据库是为精确匹配搜索而设计的,不适合图像或文本相似性搜索等任务。
  • 灵活性:向量表示形式用途广泛,可以从各种数据类型派生,例如文本(通过 Word2Vec、BERT 等嵌入)、图像(通过深度学习模型)等。
  • 跨模态搜索:向量可以跨不同数据模态进行搜索。例如,给定图像的向量表示,人们可以在多模式数据库中搜索相似的图像或相关文本。

还有许多其他原因。

因此,对于这次 pyhon 竞赛,我决定尝试实现这种支持。不幸的是我没能及时完成它,下面我将解释原因。

0
0 128
问题 water huang · 四月 23, 2023

我用%SQLGatewayConnection把别人给我的数据转为sql 写入mysql的时候,如果数据里面有 ascii 码为57659 这样的数据的时候,

ClassMethod Execute(sql, conn, Output msg) As%Status
{
    s$zt="Err"
    s msg=""
    k hstmt
    set sc=conn.AllocateStatement(.hstmt)
    set sc=conn.PrepareW(hstmt,sql) 
    
  if$$$ISERR(sc) quit sc
  //Execute statement
  set sc=conn.Execute(hstmt)
  if$$$ISERR(sc) 
  {
      k err
   Set xsc=conn.GetErrorList(hstmt,.err)
      set sc=conn.DropStatement(hstmt)
   ;Zwrite err
   Quit err
  }
    set sc=conn.DropStatement(hstmt)
    q$$$OK
Err
    ;w $ze,!
    q$ze
}
1
0 143
文章 Jingwei Wang · 十一月 29, 2022 3m read

在Windows配置DSN

  1. 确认InterSystems ODBC客户端驱动已安装
    • InterSystems IRIS ODBC驱动会随着InterSystems IRIS安装包默认安装。
    • 如果没有随着InterSystems IRIS安装,请由此下载驱动,下载后执行.exe文件进行安装。
  2. 定义DSN(Data Source Names)
    • 打开Administrative Tools
    • 打开ODBC Data Sources Administrator(32-bit 或者 64-bit)
    • 选择‘System DSN’,点击右边 ‘Add’,弹出‘Create New Data Source’窗口。
    • 选择一个InterSystems IRIS 安装版本的ODBC驱动,点击‘Finish’
    • 如下图所示,输入驱动名称,IP地址,端口号(使用超级服务端口号),命名空间,用户名和密码。 
    • 然后点击 'Test Connection' 进行连接测试

在Linux配置DSN

3
0 503
问题 cy f · 十二月 9, 2022

我参阅得文档

https://docs.intersystems.com/iris20222/csp/docbook/DocBook.UI.Page.cls?KEY=BNETODBC

我使用得方式

https://docs.intersystems.com/iris20222/csp/docbook/DocBook.UI.Page.cls?KEY=BNETODBC_unixodbc#BNETODBC_unixodbc_odbcinst

我使用得是unixodbc版本

unixODBC 2.3.4

系统版本(ubuntu 1804)

uname -a
Linux DESKTOP-TFPBPQU 4.4.0-19041-Microsoft #1237-Microsoft Sat Sep 11 14:32:00 PST 2021 x86_64 x86_64 x86_64 GNU/Linux

我使用得驱动如下

ODBC-2020.1.2.517.0-lnxubuntux64.tar.gz 不生效

ODBC-2022.1.0.209.0-lnxubuntu1804x64.tar.gz 不生效

我得问题

数据库所在电脑和odbc所在电脑都没有防火墙 ,无法通过isql通过定义得dsn连上数据库, 也无法通过程序连接到数据库

得到得错误

2
0 258
文章 he hf · 十月 8, 2022 6m read

        安装InterSystems IRIS数据库的ODBC驱动,在Windows系统中配置数据源后,可以使用Microsoft Visual Studio 开发工具 中的服务器资源管理器很方便地连接到InterSystems IRIS数据库服务器,利用数据库连接的可视化视图,可以非常方便快捷地进行连接到InterSystems IRIS数据库的应用开发。本文将展示一个利用以上方式实现的例子,开发工具为Microsoft Visual Studio 2019,开发语言为C#,10分钟快速开发实现一个连接到InterSystems IRIS数据库的C#应用,在本例子中,可以通过选择日期和科室,查询指定日期和科室的就诊日志。

1、在成功安装InterSystems IRIS数据库的ODBC驱动后,从Windows的“控制面板”中选择“管理工具”,在“管理工具”中选择“ODBC数据源”。

2、在ODBC数据源管理的“用户DSN”标签下,选择“添加”,在随后弹出的“创建新数据源”窗口中选择“InterSystems ODBC”,点击“完成”进入下一步。

 

3、在弹出的“InterSystems ODBC数据源设置”窗口中,为数据源命名,填写连接数据库的信息,访问用户名和密码,点击“测试连接”,成功后点击“OK”保存。

 

6
3 1267
文章 Michael Lei · 六月 7, 2022 3m read

绕过ODBC使用ObjectScript访问远程系统

这是一个在 IRIS 2020.1 和 Caché 2018.1.3 上工作的代码示例
不会与新版本保持同步
也不会获得 InterSystems 提供的支持服务!   

我们经常会遇到这样的情况,由于各种原因ODBC是访问一个远程系统的唯一选择。如果你只需要检查或改变表,这就足够了。但你不能直接执行一些命令或改变一些Global。

特别感谢@Anna Golitsyna 启发我发表此文。

这个例子提供了3种 SQLprocedure 方法来实现访问远程系统这个目的,如果其他的访问方式被阻止,通常是被一些防火墙阻止。

0
0 127
文章 Qiao Peng · 一月 24, 2021 3m read

在使用xDBC连接到字符集为US7ASCII的Oracle数据库时,大家可能遇到过中文的乱码问题,尤其是使用Oracle自己的xDBC驱动的时候。

字符集为US7ASCII的Oracle数据库虽然可以保存中文数据,但给客户端带来了很多麻烦,需要对获取和提交的数据进行转码。

在Ensemble/Health Connect/InterSystems IRIS 中使用SQL适配器连接到这样的Oracle数据库时,可以使用$ZCVT函数进行转码。

1. $ZCVT函数

$ZCVT函数是广泛使用的字符串转换函数,可以做大小写转换、编码转换、URL 和 URI 转换等。我们用其编码转换能力来解决字符集转码问题。

2. 获取的SQL结果集数据有中文时

这时,Oracle的驱动返回的中文数据通常是GB码,而不是Unicode或UTF码。可以通过$ZCVT函数对GB码的数据进行转码,转换为Unicode:

Set tCorrectData = $ZCVT(tOriginalData,"I","GB18030")

其中$ZCVT函数的第一个参数tOriginalData是获取到到结果集字段值;第二个参数“I”说明tOriginalData是输入字符串;第三个参数“GB18030”是说明输入字符串的字符集编码是GB18030。

2
0 1007
文章 Michael Lei · 十一月 9, 2021 1m read

https://www.appeon.com/products/powerbuilder

Appeon PowerBuilder 是一个企业级开发工具,可以用来建立数据驱动的商业应用程序和组件。它是Appeon产品套件之一,同时提供了开发C/S、Web、移动和分布式应用程序的工具。

在这篇文章中,我将展示通过使用ODBC用Appeon PowerBuilder连接Caché的步骤。

步骤1 :
确保在安装IRIS时选择ODBC驱动程序选项。

步骤2:
通过使用ODBC数据源管理器配置ODBC IRIS数据源 

步骤 3: 配置InterSystems ODBC 数据源

步骤 4: 测试连接 (确保 IRIS 实例在运行)

步骤 5: 
从 PowerBuilder 打开数据库Profiles, 在列表选中ODB ODBC并单击“新建 New”... 按钮

 

步骤 6: 
选择我们已经用ODBC管理器创建的 "IRISHealth User"数据源


步骤 7: 点击“测试连接Test Connection” 按钮,在Preview页面下测试连接

恭喜! 我们已经成功建立了IRIS链接。现在我们可以用PowerBuilder database painter来看表和数据了


谢谢

0
0 173
文章 Michael Lei · 五月 8, 2021 8m read

关键字:Python,JDBC,SQL,IRIS,Jupyter Notebook,Pandas,Numpy ,机器学习 

1. 目的

这是一个用于演示的 5 分钟快速笔记,通过 Jupyter Notebook 中的 Python 3 调用 IRIS JDBC 驱动程序,以经由 SQL 语法从 IRIS 数据库实例读取数据和向 IRIS 数据库实例写入数据。 

去年,我发表了关于将 Python 绑定到 Cache 数据库的简要笔记(第 4.7 节)。 如何使用 Python 挂入 IRIS 数据库以将其数据读入 Pandas 数据框和 NumPy 数组进行常规分析,然后再将一些经过预处理或标准化的数据写回 IRIS 中,准备进一步用于 ML/DL 管道,现在可能是时候回顾一些选项和讨论了。

一些立即浮现的快速选项

  1.    ODBC:Python 3 和原生 SQL 的 PyODBC?
  2.    JDBC:Pyhton 3 和原生 SQL 的 JayDeBeApi?
  3.    Spark:PySpark 和 SQL?
  4.    Python Native API for IRIS:超越先前的 Python Binding for Cache?
  5.   ** IPtyhon Magic SQL %%sql**?  可以支持 IRIS 了吗?

 这里有漏掉其他选项吗?  我有兴趣尝试任何选项。 

2. 范围 

0
0 416