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

news2024/11/27 10:30:48

一、创建的数据库和数据

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.coloradmin.cn/o/1929611.html

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

相关文章

USB 转多路串口应用软件说明

概述 PL731模块实现1个USB接口转7个异步串口(USART[1-7])功能。用于为计算机扩展异步串口,满足大多数一对多应用场景。支持Windows 10及以上系统,绝大多数Linux系统。嵌入式Linux系统有可能经过裁剪,需要系统开发人员确保系统安装正式的驱动…

[Unity]碰撞器的接触捕获层详解

目录 前言※关闭效果器(Effector)的遮罩接触捕获层的官方描述官方描述的翻译和注解接触捕获层作用简介接触(Contact)和捕获(Capture)配置接触捕获层的作用※接触捕获层对碰撞响应的影响需要接触捕获的物理查询需要接触捕获的物理回调注意运行时(Runtime)修改接触的相互性总结 相…

关于普通接口转AXI接口AMM Master Bridge仿真和使用

平台:vivado2023.1 应用场景,在设计的过程中,在xilinx内部的IP采用AXI接口协议。而我们外部的FIFO,BRAM等接口有时候使用的Native接口。使用AMM Master Bridge IP将普通的native接口转换为AXI接口协议。 参考文件:pg…

C++ | Leetcode C++题解之第229题多数元素II

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<int> majorityElement(vector<int>& nums) {int n nums.size();vector<int> ans;unordered_map<int, int> cnt;for (auto & v : nums) {cnt[v];}for (auto & v : cnt…

leetcode 28.找出字符串中第一个匹配项的下标

对于Java来说直接秒呗&#xff1a; public static int strStr(String haystack, String needle) {return haystack.indexOf(needle); }

Unity UGUI Image Maskable

在Unity的UGUI系统中&#xff0c;Maskable属性用于控制UI元素是否受到父级遮罩组件的影响。以下是关于这个属性的详细说明和如何使用&#xff1a; Maskable属性 Maskable属性&#xff1a; 当你在GameObject上添加一个Image组件&#xff08;比如UI面板或按钮&#xff09;时&…

渲染100农场有哪些优势?渲染100邀请码1a12

渲染100是知名的渲染农场&#xff0c;深受广大设计师欢迎&#xff0c;比起其他农场&#xff0c;它有什么优势呢&#xff1f;我们一起来看看。 1、资源丰富 渲染100拥有强大的计算集群&#xff0c;能多线处理大规模、超复杂的场景渲染需要&#xff0c;性能卓越。2、成本低廉 渲…

【iOS】OC类与对象的本质分析

目录 前言clang常用命令对象本质探索属性的本质对象的内存大小isa 指针探究 前言 OC 代码的底层实现都是 C/C代码&#xff0c;OC 的对象都是基于 C/C 的数据结构实现的&#xff0c;实际 OC 对象的本质就是结构体&#xff0c;那到底是一个怎样的结构体呢&#xff1f; clang常用…

glibc-all-in-one+patchelf修改程序libc

主要是做堆的时候经常遇到libc小版本不对导致libcbase不对打不通的情况&#xff0c;再者&#xff0c;每个题换一个ubuntu虚拟机属实麻烦&#xff0c;所以还是回到最初也是最好用的做法&#xff1a;patch libc。 核心就是两个工具&#xff1a;glibc-all-in-one和patchlef。但是…

buuctf-web

查看后端源码 得到base64编码&#xff0c;解码得flag

pc端注册页面 密码校验规则

1.密码校验规则 格应包含大小写字母、数字和特殊符号,长度为8-20 var validateRetrievePassword (rule, value, callback) > {let reg /^(?.*[A-Za-z])(?.*\d)(?.*[~!#$%^&*()_<>?:"{},.\/\\;[\]])[A-Za-z\d~!#$%^&*()_<>?:"{},.\/\\;…

WSL-Ubuntu20.04训练环境配置

1.YOLOv8训练环境配置 训练环境配置的话就仍然以YOLOv8为例&#xff0c;来说明如何配置深度学习训练环境。这部分内容比较简单&#xff0c;主要是安装miniAnaconda以及安装torch和torchvision. 首先是miniAnaconda的安装(参考官网的教程Miniconda — Anaconda )&#xff0c;执行…

开发笔记 | 快速上手[法大大]电子合同SDK使用SpringBoot+JAVA

Springbootmavenjava 官方API文档 API - 法大大电子合同和电子签云平台 官方SDK下载 API - 法大大电子合同和电子签云平台 目录 目录 开发前准备 项目整合 功能1&#xff1a;查询文档模板列表 功能2&#xff1a;文档模板字段填充 开发前准备 1.点下方链接注册法大大测试环…

昇思25天学习打卡营第12天|munger85

基于MindSpore通过GPT实现情感分类 这个实现情感分类意思就是通过一些电影的数据最后知道他对于这个电影的评价&#xff0c;最后知道他对于这个电影的评价到底是好还是不好&#xff0c;零就是不好&#xff0c;一就是好。首先我们肯定是按安装这些依赖包了为了今天这个模型我们…

Postman、Apifox、Apipost用哪个?

Postman、Apifox、Apipost都是流行的API接口管理工具&#xff0c;它们各自具有不同的特点和优势&#xff0c;因此哪个更好用取决于具体的使用场景和需求。以下是对这三个工具的比较分析&#xff1a; 一、Postman 特点与优势&#xff1a; 支持多种请求方式&#xff1a;包括GE…

游戏分组(DFS)

游戏分组&#xff08;DFS&#xff09; 将10名参赛者根据其游戏水平评分分为实力尽量相近的两队。 深度优先搜索&#xff08;DFS&#xff09;是游戏分组中常用的一种算法思路。 DFS在解决特定类型的分组问题时&#xff0c;特别是需要遍历所有可能组合的情况&#xff0c;表现出了…

一文详解:医疗营销升级的智能解决方案

顺境是所有人的狂欢&#xff0c;逆境才是优秀者的天堂。淘金的时代过去了&#xff0c;未来是冶金的时代。 01、享受完改革开放40年的高速区间红利 企业正处于中速区间的全面竞争期 1978年&#xff0c;中国的GDP是3679亿。改革开放40多年&#xff0c;我们不断引进资本&#xf…

【嵌入式Linux】<总览> 网络编程(更新中)

文章目录 前言 一、网络知识概述 1. 网路结构分层 2. socket 3. IP地址 4. 端口号 5. 字节序 二、网络编程常用API 1. socket函数 2. bind函数 3. listen函数 4. accept函数 5. connect函数 6. read和recv函数 7. write和send函数 三、TCP编程 1. TCP介绍 2.…

Monaco 使用 DocumentFormattingEditProvider

文档格式化&#xff0c;是 VSCode 比较常用的功能&#xff0c;在文档上点击右键选择格式化文档。效果如下&#xff1a; 在 Monaco 通过 registerDocumentFormattingEditProvider 方法注册处理函数&#xff0c;实现 provider 方法。 provider 方法返回格式化好的代码。 TextE…

Android C++系列:Linux文件系统(二)

1. VFS虚拟文件系统 Linux支持各种各样的文件系统格式&#xff0c;如ext2、ext3、reiserfs、FAT、NTFS、iso9660 等等&#xff0c;不同的磁盘分区、光盘或其它存储设备都有不同的文件系统格式&#xff0c;然而这些文件系统 都可以mount到某个目录下&#xff0c;使我们看到一个…