# -*-coding:utf-8-*- import pyodbc import datetime
#在Python中,str表示字符串类型。一般用单引号、双引号和三引号来表示字符串,表示字符串的单引号和双引号应该成对出现。 #print(pyodbc.drivers())
try: #方式一:使用自定义的DSN conn = pyodbc.connect('DSN=HighGoOdbc;PWD=test') # 方式二:使用驱动 # conn = pyodbc.connect('DRIVER={PostgreSQL Unicode(x64)};SERVER=192.168.2.5;port=5866;DATABASE=test;UID=test;PWD=test') cursor = conn.cursor() #cursor.execute("select '数据库版本:['||version()||']'") #result = cursor.fetchall() #print(result) #查询数据 cursor.execute("select count(*) as student_count from student") row = cursor.fetchone() print("目前已有: " + str(row.student_count) + "条数据") #新增 cursor.execute("insert into student(name, age, birthday) values (?, ?, ?)", ("pyodbc", 24, datetime.datetime.now())) cursor.execute("insert into student(name, age, birthday) values (?, ?, ?)","pyodbc2", 24, datetime.datetime.now()) params = [('pyodbc3', 18, '2019-07-06 15:59:58'), ('pyodbc4', 20, '2019-07-06 15:59:58')] cursor.executemany("insert into student(name,age,birthday) values (?, ?, ?)", params) #等价于等价于执行execute()函数两次 #for p in params: # cursor.execute("insert into student(name,age,birthday) values (?, ?, ?)", p) # 提交数据(只有提交之后,所有的操作才会对实际的物理表格产生影响) conn.commit()
#查询数据 cursor.execute("select * from student") rows = cursor.fetchall() print("查询到:" + str(rows.__len__()) + "条数据") for row in rows: print(row.id, row.name) #执行存储过程 params = ("Dinsdale", 14) cursor.execute("{CALL t_return_val (?,?)}", params) result = cursor.fetchone() print(result) #关闭Cursor对象 cursor.close() #关闭连接 conn.close() except Exception as e: print(e)
|