robotframework-demo/Project/task4/Script/SC2_Database/02_DB2/db2myclass.py

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)