Python -PyoDBC适用于SQL的任何地方16



我试图使用pyodbc通过下面的pyodbc通过python连接到db:

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 wherewhere 16};'pyodbc.error :('08001','[08001] [08001] [sybase] [sybase] [odbc驱动程序] 找不到(-100((sqldriverConnect('(

我在Windows上具有odbc配置,并带有驱动程序" SQL Whineware 16",我可以使用此ODBC连接通过Squirrel SQL连接 - 对此有任何想法吗?

这看起来像是您的连接字符串的问题。也许我错了,但是看起来您遇到的错误是没有找到服务器,并且基于错误,看起来几乎就像您仅将Driver=SQL Anywhere 16传递给了它。

我提到这一点,因为在此问题中:使用python?

连接到MS SQL Server,

他们详细介绍了答案中多条线上的字符串

conn_str = (
r'Driver={SQL Server};'
r'Server=.SQLEXPRESS;'
r'Database=myDB;'
r'Trusted_Connection=yes;'
)

cnxn = pyodbc.connect(conn_str(

此外,在搜索多行线字符串时,我们在这里看到此答案:如何正确编写Python中的RAW MULTILINE字符串?

哪些详细信息:

您需要在每个字符串字面上需要一个r前缀

(r'one'
     r'two')
'on\e\tw\o'

否则,第一部分被解释为原始字符串文字,但下一行的字符串不是,因此" t"被解释为Tab字符。

因此,请尝试将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)

看看是否可以解决您的问题。

编辑:我编辑以修复格式。

最新更新