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() 

これをモジュールに入れてインポ​​ートできるようにしたいので、コード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' external function

私はPythonにまったく慣れていませんが、これをモジュールとして配置し、そのコードを実行するたびにインポートを使用できるようにする方法はありますか?

4

1 に答える 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 に答える