pyodbc 连接sql server

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

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

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

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

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

安装即可使用。import pyodbc

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

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).

改为

'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



你可能感兴趣的:(sql,python,server,远程连接,pyodbc)