python通过ODBC连接神通数据库

news2024/12/4 14:24:33

1、安装神通数据库

2、安装python

3、安装pyodbc

pip3 install pyodbc-5.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

注:pyodbc要和python版本相对应 

4、安装unixodbc 

5、配置神通数据库ODBC数据源 

 

6、示例代码如下

#!/usr/bin/python3

import pyodbc

# 配置ODBC连接参数
dsn = 'odsn'  # 数据源名称(DSN)
username = 'sysdba'  # 用户名
password = 'szoscar55'  # 密码

# 连接字符串
connection_string = f'DSN={dsn};UID={username};PWD={password};'

# 连接到数据库
try:
    conn = pyodbc.connect(connection_string)
    print("连接成功!")
    cursor = conn.cursor()

    ###创建表
    table_create_sql = """
    CREATE TABLE if not exists abc(column1 varchar(10),column2 varchar(10),column3 varchar(10));"""
    cursor.execute(table_create_sql)
    conn.commit()
    print("创建成功!")

    # 插入数据(INSERT)
    insert_sql = '''
    INSERT INTO abc (column1, column2, column3)
    VALUES (?, ?, ?)
    '''
    values_to_insert = ([('value1', 'value2', 'value3'),('value4', 'value5', 'value6')])
    cursor.executemany(insert_sql, values_to_insert)
    #cursor.execute(insert_sql, values_to_insert)
    conn.commit()  # 提交事务
    print("插入成功!")

    # 查询数据(READ)
    select_sql = 'SELECT * FROM abc'
    cursor.execute(select_sql)
    rows = cursor.fetchall()
    for row in rows:
        print(row)

    # 更新数据(UPDATE)
    update_sql = '''
    UPDATE abc
    SET column2 = ?
    WHERE column1 = ?
    '''
    new_value = 'new_value2'
    condition_value = 'value1'  # 假设这是你要更新的行的条件值
    cursor.execute(update_sql, (new_value, condition_value))
    conn.commit()  # 提交事务
    print("更新成功!")

    # 删除数据(DELETE)
    delete_sql = '''
    DELETE FROM abc
    WHERE column1 = ?
    '''
    condition_value_for_delete = 'value1'  # 假设这是你要删除的行的条件值
    cursor.execute(delete_sql, (condition_value_for_delete,))
    conn.commit()  # 提交事务
    print("删除成功!")

except pyodbc.Error as e:
    print(f"数据库操作失败: {e}")

finally:
    # 关闭游标和连接
    if cursor:
        cursor.close()
    if conn:
        conn.close()
        print("连接已关闭。")

7、执行结果

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

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

相关文章

基于单片机的智能药箱设计

本设计主要由红外检测传感器、显示、独立按键、舵机、语音以及短信等模块组成。红外传感器模块主要对药仓中的药物数据进行采集,采集完毕由主控制器进行数据加工,之后可传送至显示模块上进行显示,在显示模块也可对显示时间、吃药倒计时、吃药…

【掩体计划——DFS+缩点】

题目 代码 #include <bits/stdc.h> using namespace std; const int N 1e5 10; vector<vector<int>> g; bool st[N]; int ans 1e9; bool dfs(int f, int u, int dis) {bool is 1;for (auto j : g[u]){if (j f)continue;is & dfs(u, j, dis (g[u].…

无人机点云处理算法技术解析!

一、核心技术 数据预处理&#xff1a; 数据预处理是点云处理的第一步&#xff0c;主要包括滤波、去噪、数据压缩等。滤波技术可以去除点云数据中的噪声和孤立点&#xff0c;提高数据质量。常用的滤波方法包括双边滤波、高斯滤波等。 数据压缩则用于减少数据量&#xff0c;提…

Android13 允许桌面自动旋转

一&#xff09;需求-场景 Android13 实现允许桌面自动旋转 Android13 版本开始后&#xff0c;支持屏幕自动旋转&#xff0c;优化体验和兼容性&#xff0c;适配不同屏幕 主界面可自动旋转 二&#xff09;参考资料 android framework13-launcher3【06手机旋转问题】 Launcher默…

vue+uniapp+echarts的使用(H5环境下echarts)

1.安装 npm install echarts4.9.0 --save // 带版本号 2.main.js中全局引用 // import echarts from echarts // 如果是5.0以上版本用这个 import * as echarts from echarts Vue.prototype.$echartsecharts 3.使用 <template><view id"box" style"w…

探索仓颉编程语言:官网上线,在线体验与版本下载全面启航

文章目录 每日一句正能量前言什么是仓颉编程语言仓颉编程语言的来历如何使用仓颉编程语言在线版本版本下载后记 每日一句正能量 当你被孤独感驱使着去寻找远离孤独的方法时&#xff0c;会处于一种非常可怕的状态。因为无法和自己相处的人也很难和别人相处&#xff0c;无法和别人…

【Elasticsearch】Docker安装和基本概念

1. Docker安装ES 拉取es镜像 docker pull elasticsearch:8.5.3 创建网络 docker network create oj-network 启动es docker run -d --name oj-es-dev -e "ES_JAVA_OPTS-Xms256m -Xmx256m" -e "discovery.typesingle-node" -v D:\javacode\oj-byte\depl…

基于Java Springboot环境保护生活App且微信小程序

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 微信…

[SWPUCTF 2021 新生赛]gif好像有点大

[SWPUCTF 2021 新生赛]gif好像有点大 帧解一下 找到这个二维码用软件CQR解开一下 得到flag NSSCTF{The_G1F_ls_T00_b1g} [BJDCTF 2020]base?? 给了我们base64加密的密文 用python直接解密 import base64 dict{0: J, 1: K, 2: L, 3: M, 4: N, 5: O, 6: x, 7: y, 8: U, 9: …

Unity类银河战士恶魔城学习总结(P156 Audio Settings音频设置)

【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili 教程源地址&#xff1a;https://www.udemy.com/course/2d-rpg-alexdev/ 本章节实现了音频的大小设置与保存加载 音频管理器 UI_VolumeSlider.cs 定义了 UI_VolumeSlider 类&#xff0c;用于处理与音频设置相关的…

【Java从入门到放弃 之 类加载器】

类加载器 ClassLoader 类加载器动态加载类的两种方式类加载过程双亲委派模型特点类加载器层次结构 自定义类加载器总结 类加载器 类加载器负责将Java字节码文件&#xff08;.class文件&#xff09;动态加载到内存中&#xff0c;并将其转化为JVM可以执行的类对象。它是Java运行…

华为HarmonyOS 让应用快速拥有账号能力 -- 1 华为账号一键登录

概述 华为账号一键登录是基于OAuth 2.0协议标准和OpenID Connect协议标准构建的OAuth2.0 授权登录系统&#xff0c;应用可以通过华为账号一键登录能力方便地获取华为账号用户的身份标识和手机号&#xff0c;快速建立应用内的用户体系。 优势&#xff1a; 利用系统账号的安全…

高效数据分析:五款报表工具助力企业智能决策

概述 报表工具是企业进行数据分析、展示和决策支持的核心工具之一。本文将为大家介绍五款各具特色的报表工具&#xff0c;包括国产的山海鲸报表、FineReport&#xff0c;以及国际工具Databox、Pentaho Reporting和Zoho Analytics。通过详细分析它们的功能特点、优势和不足&…

生态环境一体化智慧监管平台

在数字化和智能化的浪潮中&#xff0c;生态环境保护与治理正迎来革命性的变化。生态环境一体化智慧监管平台的建设&#xff0c;不仅响应了这一趋势&#xff0c;而且为中国式现代化的生态治理提供了新的解决方案。本文将深度分析该平台的建设内容&#xff0c;探讨其在推动生态文…

基于PyTorch框架的线性回归实现指南

目录 ​编辑 1. 线性回归基础 2. PyTorch环境搭建 3. 数据准备 4. 定义线性回归模型 5. 损失函数和优化器 6. 训练模型 7. 评估模型 8. 结论 线性回归是统计学和机器学习中最基本的预测模型之一&#xff0c;它试图找到输入特征和输出结果之间的线性关系。在深度学习框…

重生之我在异世界学编程之C语言:深入指针篇(下)

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 目录 题集&#xff08;1&#xff09;指针笔试题1&a…

【HarmonyOS】鸿蒙应用地理位置获取,地理名称获取

【HarmonyOS】鸿蒙应用地理位置获取&#xff0c;地理名称获取 一、前言 首先要理解地理专有名词&#xff0c;当我们从系统获取地理位置&#xff0c;一般会拿到地理坐标&#xff0c;是一串数字&#xff0c;并不是地理位置名称。例如 116.2305&#xff0c;33.568。 这些数字坐…

SimpleLive1.7.5 |适配手机和TV,聚合抖B虎鱼四大直播

SimpleLive是一款聚合多个直播平台的应用程序&#xff0c;内置虎牙、斗鱼、哔哩哔哩及抖音直播。提供无广告体验&#xff0c;支持弹幕显示调整、夜间模式切换等功能。用户无需登录即可关注不同平台的主播并查看其直播状态。 大小&#xff1a;14M 下载地址&#xff1a; 百度网…

泷羽sec:shell作业

⼀、⽤Shell写⼀个计算器 #!/bin/bash read -p "请输入表达式&#xff08;格式为 操作数1 运算符 操作数2&#xff0c;如 5 3&#xff09;&#xff1a;" expression a1$(echo $expression | awk {print $1}) a2$(echo $expression | awk {print $2}) a3$(echo …

ETL工具观察:ETLCloud与MDM是什么关系?

一、什么是ETLCloud ETLCloud数据中台是一款高时效的数据集成平台&#xff0c;专注于解决大数据量和高合规要求环境下的数据集成需求。 工具特点 1.离线与实时集成&#xff1a;支持离线数据集成&#xff08;ETL、ELT&#xff09;和变更数据捕获&#xff08;CDC&#xff09;实…