InterSystems IRIS使用python pyodbc连接 windows环境,odbc驱动安装,DSN配置,数据源配置

news/2024/8/27 21:26:38 标签: python, 开发语言

一、创建的数据库和数据

SELECT 1
 
SELECT $ZVERSION
 
CREATE TABLE MyApp.Person (  
    ID INT PRIMARY KEY,  
    Name VARCHAR(100) NOT NULL,  
    Age INT,  
    Gender CHAR(1)  
);
 
CREATE TABLE MyApp.Person2 (  
    ID INT PRIMARY KEY,  
    Name VARCHAR(100) NOT NULL,  
    Age INT,  
    Gender CHAR(1)  
);
 
 
 SELECT Table_Name FROM INFORMATION_SCHEMA.TABLES WHERE Table_Schema = 'MyApp';
 
 
INSERT INTO MyApp.Person (ID, Name, Age, Gender)  VALUES (1, 'John Doe', 30, 'M');
INSERT INTO MyApp.Person (ID, Name, Age, Gender)  VALUES (2, 'John Doe', 30, 'M');
INSERT INTO MyApp.Person (ID, Name, Age, Gender)  VALUES (3, 'John Doe', 30, 'M');
 
 
select * from  MyApp.Person

二、windows创建的dsn连接

1、dsn概念介绍

"DSN" 是数据源名称(Data Source Name)的缩写,是一个在计算机系统中用来标识和连接数据库或其他数据源的名称。DSN 是一种连接数据库的标准方法,通常用于在应用程序和数据库之间建立连接。

具体来说,DSN 包含了连接数据库所需的信息,如数据库类型、服务器地址、端口号、数据库名称、认证信息等。在使用 ODBC(Open Database Connectivity)或其他数据库连接工具时,可以通过指定 DSN 来简化连接配置过程,避免在每次连接时都重复输入连接信息。

创建 DSN 通常需要在操作系统的数据源管理工具中进行配置,将数据库的连接信息保存为一个 DSN。在应用程序中,可以直接引用这个 DSN 来建立与数据库的连接,而无需在代码中明确指定所有连接信息。

总的来说,DSN 提供了一种方便的方式来管理和使用数据库连接信息,使得连接数据库变得更加简单和灵活。

根据您提供的错误信息,问题仍然似乎是由于未找到数据源名称导致的。在这种情况下,您可以尝试手动创建一个 DSN(数据源名称),然后在连接字符串中使用这个 DSN。以下是一种方法:

2、手动创建 DSN


    - 在 Windows 操作系统中,您可以通过以下步骤手动创建 DSN:
     - 进入控制面板 > 管理工具 > 数据源(ODBC)
     - 在用户 DSN 或系统 DSN 选项卡中,点击“添加”按钮
     - 选择适当的驱动程序(InterSystems IRIS ODBC Driver 64-bit)
     - 配置连接信息(服务器、端口、数据库等)
     - 保存 DSN

 

3、python连接

代码中的dsn就是windows驱动配置的dsn名称

import pyodbc
import time

dsn = 'TestDSN'
username = '_SYSTEM'
password = '123456'

cnxn = pyodbc.connect('DSN=' + dsn + ';UID=' + username + ';PWD=' + password)

cursor = cnxn.cursor()
start = time.perf_counter()

# 执行查询
cursor.execute("SELECT * FROM MyApp.Person")
row = cursor.fetchone()
while row:
    print(row)
    row = cursor.fetchone()

end = time.perf_counter()
print("Total elapsed time: ")
print(end - start)

input("Hit any key to end")

三、直接python中创建dsn

import pyodbc

# 定义连接信息
driver = '{InterSystems IRIS ODBC35}'
server = '127.0.0.1'
database = 'test'
username = '_SYSTEM'
password = '123456'

# 建立数据库连接
cnxn = pyodbc.connect(driver=driver, server=server, database=database, uid=username, pwd=password)

# 执行查询等操作
cursor = cnxn.cursor()
cursor.execute("SELECT * FROM MyApp.Person")
row = cursor.fetchone()
while row:
    print(row)
    row = cursor.fetchone()

# 关闭连接
cnxn.close()


http://www.niftyadmin.cn/n/5559126.html

相关文章

无人机监测的必要性及方法

为什么需要无人机探测? 无人机的快速发展和广泛使用为各个行业带来了巨大好处,包括送货服务、农业和监控。然而,这种扩散也导致滥用现象增多,造成非法入侵空域、侵犯隐私和安全威胁。监控和探测在特定空域盘旋的无人机的能力变得…

大模型“重构”教育:解构学习奥秘,推动教育普惠

大模型“重构”千行百业系列选题 生成式人工智能的热潮,为AI领域的发展注入新的活力,而“赋能千行百业”已经成为人们普遍对于人工智能和大模型的全新理解。 人工智能和大模型技术的迅猛发展正在以前所未有的速度深刻改变着各个行业。正如专家所预测&a…

MongoDB常用命令大全,概述、备份恢复

文章目录 一、MongoDB简介二、服务启动停止、连接三、数据库相关四、集合操作五、文档操作六、数据备份与恢复/导入导出数据6.1 mongodump备份数据库6.2 mongorestore还原数据库6.3 mongoexport导出表 或 表中部分字段6.4 mongoimport导入表 或 表中部分字段 七、其他常用命令八…

【D3.js in Action 3 精译_016】第二章 DOM 的操作方法

当前内容所在位置 第一部分 D3.js 基础知识 第一章 D3.js 简介(已完结) 1.1 何为 D3.js?1.2 D3 生态系统——入门须知1.3 数据可视化最佳实践(上)1.3 数据可视化最佳实践(下)1.4 本章小结 第二章…

Laravel资源控制器:简化API和Web应用开发的艺术

Laravel资源控制器:简化API和Web应用开发的艺术 在Laravel框架中,资源控制器(Resource Controllers)是一种特殊的控制器,用于处理资源的常规CRUD(创建、读取、更新、删除)操作。它们提供了一种…

新一代大语言模型架构:测试时间训练层(Test-Time Training,TTT)

引言 近年来,随着Transformer架构的出现,人工智能特别是自然语言处理领域取得了飞跃性的进展。然而,最新的大语言模型架构Test-Time Training(简称TTT)的出现,可能会在不久的将来超越Transformer和Mamba。…

【人工智能】自然语言处理(NLP)的突破,关注NLP在机器翻译、情感分析、聊天机器人等方面的最新研究成果和应用案例。

自然语言处理(NLP)作为人工智能的一个重要分支,近年来取得了显著的突破,特别在机器翻译、情感分析、聊天机器人等领域取得了显著的研究成果和广泛的应用。以下是对这些领域最新研究成果和应用案例的概述,并附带相应的代…

ubuntu上模拟串口通信

前言 有时候写了一些串口相关的程序,需要调试的时候,又没有硬件,或者需要等其他模块完成才能一起联调。这样搭建环境费时费力,很多问题等到最后联调才发现就已经很晚了。 本文提供一种在ubuntu环境下模拟串口,直接就可…