使用pyodbc创建Python模块

时间:2012-11-13 21:46:16

标签: python database wxpython pyodbc

想要制作可以从数据库中获取数据的小型python模块。我有下载pydbc,它工作得很好:

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 \ site-packages \ testDB.py”中我尝试导入它,但是我收到了这个错误:SyntaxError:'return'在函数外面

我是python的新手,有什么想法我可以把它作为一个模块,每次我想运行该代码时能够使用import吗?

1 个答案:

答案 0 :(得分: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

此外,您必须为连接字符串使用双引号,因为您在字符串本身中使用单引号。我已将它们改为上面以反映出来。

祝你好运, 麦克