2017-09-05 13 views
3

SQL 데이터베이스에 약간 다른 방법으로 연결하려고합니다. 매개 변수 사용 여부. 왜 매개 변수를 사용하지 않고 잘 작동하지만 매개 변수를 사용하면 오류가 발생합니다. 구문 오류가 발생 했습니까? 나는 각 글자를 훑어보고 아무 것도 볼 수 없었다.DSN 및 SERVER 키워드가 Python3으로 제공되지 않았습니다.

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

+0

'server; 키워드 대신에 ... ... server = '+ server + ...'대신에 공간을 제거하십시오. '...; server ='+ server + ... '. –

+0

그것은 효과가있다. 나는 python이 sooo 까다로운 언어다고 믿는다. 나는 그것에 대해서 생각조차하지 않을 것이다. 대답 해 주시면 올바른 것으로 받아 들일 것입니다. 당신의 도움을 주셔서 대단히 감사합니다. – Oleg

+0

이 경우 SQLServer가 될 것입니다. Python이 아니라 중요한 것은 .. – thebjorn

답변

3

윈도우 ODBC 드라이버 관리자는 연결 문자열의 키워드에 대해 매우 까다 롭습니다. 그들은 즉시 등호가 따라야하므로 SERVER=...이 작동하지만 SERVER =...은 작동하지 않습니다.