python通过ODBC连接南大通用数据库,进行数据库查询

python通过ODBC连接南大通用数据库,进行数据库查询

环境说明

  • window平台安装了VMware虚拟机(为了安装Gbase 8s数据库),并在window平台通过ODBC连接Gbase 8s数据库,通过pyodbc的DSN方式对数据库进行查询。
  1. Gbase 8s
  2. python3.7
  3. redhat7

数据库服务器配置

  1. 创建实例
    按照官方的Gbase 8s的安装手册进行典型安装,会创建ol_gbasedbt1210数据库实例。

  2. 关闭防火墙
    进入root账户,临时关闭防火墙。(重启电脑后,防火墙自动起来)
    systemctl stop firewalld

  3. 配置数据库的ip地址
    进入root帐号查看所有地址和端口号
    netstat -nptal
    搜索结果

  4. gbasedbt用户,找到sqlhosts.ol_gbasedbt1210,用vi指令进行做以下更改

    gbase8s       onsoctcp       192.168.0.106  4639
    gbase8s_drda   drsoctcp   192.168.0.106  4640
    
  5. 创建数据库
    创建test3数据库
    进入gbasedbt用户,通过dbaccess --,指令进入DB-Access界面,创建test3数据库,并创建test3path表,字段名有id和path。

win平台配置配置DSN

  1. GBase 8s ODBC Driver 提供 GUI 来配置 DSN
    利用官方提供的ODBC Driver 程序员指南文档安装ODBC驱动。
    在这里插入图片描述
    以下系列软件会安装在你的电脑上
    在这里插入图片描述
  2. 配置Setnet32参数
    打开Setnet32之后,对于environment选项不用配置参数
    而Server Information配置如下
    在这里插入图片描述
    然后Host Information配置如下,usrer name和password填自己的噢~
    在这里插入图片描述
  3. 配置ODBC数据源驱动
    在控制面板找到管理工具,然后打开:ODBC 数据源(64 位),配置系统DSN,并应用。其中配置参数如下:
    General参数在这里插入图片描述
    Connection参数,并进行测试。在这里插入图片描述
    Environment参数
    在这里插入图片描述
  4. 向数据库test3插入数据
    打开window平台的ConnetTest Demo软件,配置以下参数,并执行。假如成功的话,那恭喜你连接成功啦~
    在这里插入图片描述

python环境开发

  1. 安装pyodbc,cmd命令行输入pip install pyodbc
  2. 废话不多说,直接上代码:
# -*- coding: UTF-8 -*-
import pyodbc
import time
'''
python DSN方式找南大通用数据库所有文件路径 new_res
'''
start_time = time.time()
def qidong(DSN):
    db = pyodbc.connect('DSN=gbase')
    cursor = db.cursor()
	
	#连表查询非系统表
    sql_2 = '''select tabname,colname from systables  CROSS JOIN syscolumns  where systables.tabid>99;'''
    cursor.execute(sql_2)
    results = cursor.fetchall()
    new_res = []
    for i in range(0, len(results)):
        try:
            test_sql_1 = '''select * from {0} where {1} like'%.docx% 'or {2} like '%.pdf%' or {3} like '%.txt%'or {4} like '%.jpg%' or {5} like '%.png%' or {6} like '%.xlsx%' or {7} like '%.xlsx%';'''.format(results[i][0],
                                                                                                      results[i][1],
                                                                                                      results[i][1],
                                                                                                      results[i][1],
                                                                                                      results[i][1],
                                                                                                      results[i][1],
                                                                                                      results[i][1],
                                                                                                      results[i][1])
            cursor.execute(test_sql_1)
            results1 = cursor.fetchall()
            # 调用清洗数据函数
            res = drop(results1)
            new_res.append(res)
        except Exception as e:
            pass
            continue
    print(new_res)
#清理数据
def drop(dark_pathfilename):
    res = []
    for item in dark_pathfilename:
        for element in item:
            choices = ['.pdf','.docx','.txt','.jpg','.png','.xlsx','.pptx']
            ele = str(element)
            a =ele.rstrip()
            if type(a) == type('string') and a.endswith(tuple(choices)):
                res.append(a)
    return res
    
qidong(DSN='gbase')

end_time = time.time()
Scanning_time = end_time -start_time
print(f"扫描完毕,使用时间:{Scanning_time}秒")

'''最终结果在find_file_name函数里的new_res'''
  1. 查询结果
    [[], [], [], ['weixin.docx', 'C:\\pythonwork\\weixin.docx', 'C:\\pythonwork\\weixin.docx', 'C:\\pythonwork\\weixin.docx', 'C:\\pythonwork\\weixin.pdf', 'C:\\pythonwork\\weixin.pdf', 'C:\\pythonwork\\weixin.pdf', 'C:\\pythonwork\\weixin.pdf', 'C:\\pythonwork\\weixin.pdf', 'C:\\pythonwork\\weixin.pdf', 'C:\\pythonwork\\weixin.pdf', 'C:\\pythonwork\\weixin.xlsx', 'C:\\pythonwork\\qq.pdf', 'C:\\pythonwork\\weixin.png']]
    

备注:

  1. 如果需要官方安装文档和Gbase 8s或者8t可以在南大通用的官网找到电话,并申请试用。
  2. Gbase 8s和8t安装过程很相似,本文可以作为参考。
  3. 感谢南大通用的产品支持。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中的pyodbc是一个模块,可以帮助我们使用ODBC连接来自Windows, Linux, OS/X等系统中的大部分数据库ODBC是一种开放数据库连接(Open Database Connectivity)的标准,它提供了一种统一的接口,使得不同的数据库可以通过相同的方式进行连接和操作。通过pyodbc,我们可以连接和操作一些常见的数据库,例如access数据库。在使用pyodbc连接数据库之前,我们需要先安装pyodbc模块。安装完成后,我们可以使用pyodbc提供的函数和方法来连接和操作数据库。例如,我们可以使用pyodbc.connect函数来创建一个数据库连接,指定数据库的驱动程序和连接字符串。然后,我们可以使用连接对象的cursor()方法来创建一个游标,通过游标来执行SQL语句并获取结果。以上是使用pyodbc连接数据库的基本步骤。需要注意的是,连接字符串中需要指定正确的数据库驱动程序和数据库文件的路径。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [第一章 Python pyodbc连接access数据库的使用方法](https://blog.csdn.net/weixin_45731859/article/details/127542283)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [pyodbc访问数据库python ODBC访问数据库)](https://blog.csdn.net/manmanpa/article/details/56480004)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值