代码之家  ›  专栏  ›  技术社区  ›  Serdia

未提供DSN或服务器关键字

  •  7
  • Serdia  · 技术社区  · 7 年前

    我有语法错误吗? 我把每封信都看了一遍,什么也看不见。

    import pandas as pd
    import pyodbc
    
    #parameters:
    server = 'SQLDEV'
    db = 'MEJAMES'
    
    #Create the connection
    conn = pyodbc.connect('DRIVER={SQL Server};server =' + server + ';DATABASE = ' + db + ';Trusted_Connection=yes;')
    # query db
    sql = """
    
    select top 10 PolicyNumber, QuoteID, ProducerName from tblQuotes
    
    """
    df = pd.read_sql(sql,conn)
    df
    

    上面的陈述给了我一个错误 enter image description here

    import pandas as pd
    import pyodbc
    
    #parameters:
    #server = 'SQLDEV'
    #db = 'MEJAMES'
    
    #Create the connection
    conn = pyodbc.connect("DRIVER={SQL Server};server=SQLDEV;database=MEJAMES;Trusted_Connection=yes;")
    # query db
    sql = """
    
    select top 10 PolicyNumber, QuoteID, ProducerName from tblQuotes
    
    """
    df = pd.read_sql(sql,conn)
    df
    

    enter image description here

    3 回复  |  直到 5 年前
        1
  •  10
  •   Gord Thompson    7 年前

    Windows ODBC驱动程序管理器对连接字符串中的关键字非常挑剔。它们后面必须紧跟着等号,所以 SERVER=... 可以,但是 SERVER =... 不会。

        2
  •  2
  •   punggolzenith    6 年前

    我正在django BTW上使用它。

    一定是什么臭虫。

    像这样的

        'ENGINE': 'sql_server.pyodbc',
        'NAME': 'YOURGREATESTDATABASE',
        'USER': 'YOURGREATESTUSERNAME',
        'PASSWORD': 'YOURGREATESTPASSWORD',
        'HOST': 'WHEREYOURSERVERLIVES\DBSERVER',
        'PORT': '',
    
        'OPTIONS': {
            'driver': 'ODBC Driver 17 for SQL Server',
            'extra_params': "Persist Security Info=False;server=WHEREYOURSERVERLIVES\\DBSERVER"
    
        3
  •  2
  •   Lucifer    5 年前

    这应该行得通

    connection = pyodbc.connect("DRIVER={/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.4.so.2.1};SERVER=%s;DATABASE=%s;UID=%s;PWD=%s"
                                % (server, database, username, password))