我正在使用python 2.7,下面的代码连接sql实例
class SqlConnector:
def __init__(self, driver, sqlserver_ip, database, **kwargs):
if 'port' in kwargs:
conn_string = 'DRIVER='+ driver + ';SERVER='+ sqlserver_ip +';PORT=' + kwargs['port'] + ';DATABASE=' + database + ';trusted_connection=yes;'
else:
conn_string = 'DRIVER='+ driver + ';SERVER='+ sqlserver_ip + ';DATABASE=' + database + ';trusted_connection=yes;'
print conn_string
self.conn = pypyodbc.connect(conn_string)
self.cur = self.conn.cursor()
def __enter__(self):
return self
def query(self, query_string):
self.cur.execute(query_string)
return
def get_all_table_columns(self):
columns = [column[0] for column in self.cur.description]
return columns
def get_all_table_rows(self):
rows = self.cur.fetchall()
return rows
def __repr__(self):
conn_string = 'DRIVER='+ driver + ';SERVER='+ sqlserver_ip + ';DATABASE=' + database + ';trusted_connection=yes;'
return conn_string
def __exit__(self, exc_type, exc_val, exc_tb):
if self.conn or self.cur:
# close cursor
self.cur.close()
# close connection
self.conn.close()
我的SQL实例类似于“hostname \ PEWKA”,但错误如下
(u'08001',u'[08001] [Microsoft] [SQL Server Native Client 11.0] SQL 服务器网络接口:找到指定的服务器/实例时出错 [xFFFFFFFF的]。 “)
这是使用pypyodbc连接SQL实例的正确方法吗?真的找不到太多的信息。
任何人都可以获得一些亮点。非常感谢。
由于
答案 0 :(得分:1)
提供由反斜杠分隔的服务器名称和实例名称,例如SERVER=hostname\PEWKA
。不提供端口号。如果SQL Server实例位于远程计算机上,则必须在该计算机上运行SQL Server Browser服务。
提供以逗号分隔的服务器名称和端口号,例如SERVER=hostname,49242
。不提供实例名称。另请注意,SQL Server ODBC驱动程序不支持连接字符串中的PORT=
参数。