106 lines
2.5 KiB
Python
106 lines
2.5 KiB
Python
#!/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)
|