我正在尝试使用Pyodbc通过python连接到数据库,如下所示:
import pyodbc
import pandas as pd
conn = pyodbc.connect('Driver={SQL Anywhere 16};'
'Server=***.**.**.***;'
'Database=**********;'
'Trusted_Connection=yes;'
)
Data = pd.read_sql_query("SELECT * FROM * WHERE Date='20180328'", conn)
print(Data)
但是收到错误:
第4行,在conn=pyodbc中。connect('Driver={SQL Anywhere 16};'pyodbc.Error:('08001','[08001][Sybase][ODBC Driver][SQL Anywhere]未找到数据库服务器(-100)(SQLDriverConnect))
我在Windows上有一个ODBC配置,带有驱动程序“SQLAnywhere 16”,我可以使用这个ODBC连接通过SquirrelSQL进行连接-有什么想法吗?
对我来说,这看起来像是连接字符串的问题。也许我错了,但是看起来你面临的错误是没有找到服务器,基于这个错误,看起来就像你只是把驱动程序=SQLAnywhere 16传递到它。
我提到这一点是因为在这个问题:连接到MSSQL服务器与Windows身份验证使用Python?
它们详细说明了答案中多行字符串的以下内容
conn_str = (
r'Driver={SQL Server};'
r'Server=.\SQLEXPRESS;'
r'Database=myDB;'
r'Trusted_Connection=yes;'
)
cnxn=pyodbc。连接(连接街)
此外,当搜索多行字符串时,我们在这里看到了这个答案:如何在Python中正确编写原始多行字符串?
哪些细节:
每个字符串文本都需要一个r前缀
(r'on\e'
r'\tw\o')
'on\\e\\tw\\o'
否则,第一部分将被解释为原始字符串文字,但字符串的下一行不是,因此“\t”将被解释为制表符。
因此,请尝试在该文本字符串的每一行前面加上一个r,使其更像
import pyodbc
import pandas as pd
conn = pyodbc.connect(r'Driver={SQL Anywhere 16};'
r'Server=***.**.**.***;'
r'Database=**********;'
r'Trusted_Connection=yes;'
)
Data = pd.read_sql_query("SELECT * FROM * WHERE Date='20180328'", conn)
print(Data)
看看这是否能解决你的问题。
编辑:我编辑来修复格式。