pyodbc 链接sql server

要求:使用python访问远程服务器中的SQL Server,而且插入数据 html

环境:python2.7; windows XP;sql server 2000 python

参数(虚拟):服务器ip=1.2.3.4; 端口port=1; sql

访问sql server的库,知道的有pyodbc以及pymssql,可是pymssql最高版本到py2.6,因此选择pyodbc。第一次使用python访问数据库,折腾了好久,主要是参数中,远程服务器和端口的格式不知道。 数据库

pyodbc下载地址:http://code.google.com/p/pyodbc/downloads/list windows

安装便可使用。import pyodbc 服务器

具体使用方法能够参考帮助文档(GettingStarted, Wiki),这里只记录一下本人在使用过程当中遇到的麻烦。 python2.7

cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=1.2.3.4;DATABASE=testdb;UID=me;PWD=pass')
不知道,网上不少都没有说端口怎么处理,也不知道做为参数的端口该怎么写。看到有将 “PORT=1”添加到参数字符串中的,可是个人老是没有成功。

本身在本地安装了Sql Server 2000,在dos下使用sqlcmd访问远程数据库1.2.3.4成功,因此应该是本身的参数写错了。以前connect函数的参数为 函数

'DRIVER={SQL Server};SERVER=1.2.3.4;PORT=1;DATABASE=testdb;UID=me;PWD=pass'

各类错,错误编号有(17)以及(53). google

改成 spa

'DRIVER={SQL Server};SERVER=1.2.3.4,1;DATABASE=testdb;UID=me;PWD=pass'
链接成功

不过本地的话,若SERVER=localhost,还没连上,暂时没有去实验链接本地sqlServer。

def AccessSqlServer(serverName, portNumber, databaseName, userName, password, tableName, phone, content):
	
	connStr = ''
	connStr += 'DRIVER={SQL Server};'
	connStr += 'SERVER=' + serverName + ',' + portNumber + ';'
	connStr += 'DATABASE=' + databaseName + ';'
	connStr += 'UID=' + userName + ';'
	connStr += 'PWD=' + password

	try:
		conn = pyodbc.connect(connStr)
	except Exception as e:
		return False
	
	try:
		cursor=conn.cursor()	
	except Exception as e:
		return False
		
	execStr = "insert into " + tableName + " (phone, content) values ({0}, '{1}') ".format(phone, content)
	try:
		cursor.execute(execStr)
		conn.commit() #must commit
	except Exception as e:
		return False
	
	conn.close()
	return True
相关文章
相关标签/搜索