2012-11-13 63 views
1

想要製作可從數據庫獲取數據的小型python模塊。我已經下載中心pydbc它能正常工作是這樣的:使用pyodbc創建Python模塊

import pyodbc 
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=MyDatabase;DATABASE=TestDB;UID='';PWD=''') 
cursor = cnxn.cursor() 
cursor.execute("select MeasurementValue from TAG_DATA where ItemID=10") 
row = cursor.fetchone() 

現在我想把這個模塊中,這樣我可以將其導入,我不需要寫代碼evrytime或找到該文件。於是,我就這樣

import pyodbc 
def testDB(): 
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=MyDatabase;DATABASE=TestDB;UID='';PWD=''') 
    cursor = cnxn.cursor() 
    cursor.execute("select MeasurementValue from TAG_DATA where ItemID=10") 
    row = cursor.fetchone()  
return row 

我救了它創造這樣的:文件「C:\ Python27 \ LIB \站點包\ testDB.py」我試圖將其導入,但我得到這個錯誤: SyntaxError:'return'外部函數

對於python來說,我相當新,任何想法如何我可以把它作爲一個模塊,並能夠每次使用導入我想運行該代碼?

+4

也許你有功能之外的回報。 –

+2

你的注意力混亂了。 – mata

+0

請注意,您可能需要調查sqlalchemy。 – Keith

回答

1

正如其中一條評論所說,你的縮進是混亂的。空格(縮進)在Python中至關重要。試着這樣說:

import pyodbc 
def testDB(): 
    cnxn = pyodbc.connect("DRIVER={SQL Server};SERVER=MyDatabase;DATABASE=TestDB;UID='';PWD=''") 
    cursor = cnxn.cursor() 
    cursor.execute("select MeasurementValue from TAG_DATA where ItemID=10") 
    row = cursor.fetchone()  
    return row 

此外,你必須,用雙引號的連接字符串,因爲你是字符串本身使用單引號。我已經改變了它們以反映這一點。

好運, 邁克