#!/usr/bin/python3 # -*- coding: utf-8 -* #The config for global variable import os,sys,importlib importlib.reload(sys) os.add_dll_directory('C:\\Python38\\Lib\\site-packages\\clidriver\\bin') import ibm_db #connStr = "DATABASE=TEST;HOSTNAME=10.18.32.105;PORT=50000;PROTOCOL=TCPIP;UID=db2inst1;PWD=111111;" #connStr = None conn = None class db2myclass(object): def createdb2(self,sql,connStr): #创建表 try: # 连接数据库 global conn conn = ibm_db.connect(connStr,"","") # 执行SQL语句 stmt = ibm_db.exec_immediate(conn,sql) # 获取受影响的行数 rows = ibm_db.num_rows(stmt) # 提交事务 ibm_db.commit(conn) except Exception as ex: # 回滚事务 ibm_db.rollback(conn) finally: # 关闭数据库连接 ibm_db.close(conn) def insertdb2(self,sql,connStr): #插入数据 try: # 连接数据库 global conn conn = ibm_db.connect(connStr,"","") # 执行SQL语句 stmt = ibm_db.exec_immediate(conn,sql) # 获取受影响的行数 rows = ibm_db.num_rows(stmt) # 提交事务 ibm_db.commit(conn) except Exception as ex: # 回滚事务 ibm_db.rollback(conn) finally: # 关闭数据库连接 ibm_db.close(conn) def dropdb2(self,sql,connStr): #删除表 try: # 连接数据库 global conn conn = ibm_db.connect(connStr,"","") # 执行SQL语句 stmt = ibm_db.exec_immediate(conn,sql) # 获取受影响的行数 rows = ibm_db.num_rows(stmt) # 提交事务 ibm_db.commit(conn) except Exception as ex: # 回滚事务 ibm_db.rollback(conn) finally: # 关闭数据库连接 ibm_db.close(conn) def countdb2(self,sql,connStr): #查询行数 try: # 连接数据库 global conn conn = ibm_db.connect(connStr,"","") # 执行SQL语句 stmt = ibm_db.exec_immediate(conn,sql) # 调用fetch_both(stmt)提取一行,返回的结果是一个字典,取值可以用列名或索引 result["MOBILE"]或 result[0] rows = ibm_db.fetch_both(stmt) # 获取查询行数 return rows[0] except Exception as ex: print(ex) finally: # 关闭数据库 ibm_db.close(conn) def check(self,sql,connStr): #校验表 try: # 连接数据库 global conn conn = ibm_db.connect(connStr, "", "") # 执行SQL语句 stmt = ibm_db.exec_immediate(conn, sql) # 获取受影响的行数 rows = ibm_db.num_rows(stmt) except Exception as ex: print(ex) finally: # 关闭数据库 ibm_db.close(conn)