2014-06-30 36 views
1

我只需要從MS SQL Server 2008連接讀取單個值,但我不確定如何執行此操作。這裏是代碼從MS SQL Server 2008讀取單個值的Python腳本

import pyodbc 



querystring = """SELECT USER_NAME 
FROM sem6.sem_computer, [sem6].[V_SEM_COMPUTER], sem6.IDENTITY_MAP, sem6.SEM_CLIENT 
WHERE [sem6].[V_SEM_COMPUTER].COMPUTER_ID = SEM_COMPUTER.COMPUTER_ID 
AND sem6.SEM_CLIENT.GROUP_ID = IDENTITY_MAP.ID 
AND sem6.SEM_CLIENT.COMPUTER_ID = SEM_COMPUTER.COMPUTER_ID 
AND [IP_ADDR1_TEXT] = '10.10.10.10' 
""" 

con = pyodbc.connect('DRIVER={SQL Server};SERVER=10.10.10.100;DATABASE=databasename;UID=username;PWD=password') 
cur = con.cursor() 
cur.execute(querystring) 
con.commit() 
con.close() 

回答

2

您需要在執行查詢後獲取結果。請參閱PEP 249瞭解dbapi如何公開此信息。

在你的情況下,username = cur.fetchone()[0]將工作。

2

根據Python的DB-API,你需要做的fetchone檢索的第一行:

import pyodbc 



querystring = """SELECT USER_NAME 
FROM sem6.sem_computer, [sem6].[V_SEM_COMPUTER], sem6.IDENTITY_MAP, sem6.SEM_CLIENT 
WHERE [sem6].[V_SEM_COMPUTER].COMPUTER_ID = SEM_COMPUTER.COMPUTER_ID 
AND sem6.SEM_CLIENT.GROUP_ID = IDENTITY_MAP.ID 
AND sem6.SEM_CLIENT.COMPUTER_ID = SEM_COMPUTER.COMPUTER_ID 
AND [IP_ADDR1_TEXT] = '10.10.10.10' 
""" 

con = pyodbc.connect('DRIVER={SQL Server};SERVER=10.10.10.100;DATABASE=databasename;UID=username;PWD=password') 
cur = con.cursor() 
cur.execute(querystring) 
row = cur.fetchone() 
print(row[0]) 
con.close()