2012-11-13 64 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 

此外,你必须,用双引号的连接字符串,因为你是字符串本身使用单引号。我已经改变了它们以反映这一点。

好运, 迈克