1

想要制作可以从数据库中获取数据的小型 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() 

现在我想把它放在一个模块中,这样我就可以导入它,我不需要每次都编写代码或定位文件。所以我试着像这样创建这个

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' outside function

我对 python 很陌生,有什么想法可以把它作为一个模块,并且每次我想运行该代码时都能够使用 import 吗?

4

1 回答 1

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

此外,您必须对连接字符串使用双引号,因为您在字符串本身中使用单引号。我已经在上面更改了它们以反映这一点。

祝你好运,迈克

于 2012-11-13T22:52:07.140 回答