関数を使用してpyodbcを使用してMSSQLのデータをクエリしようとすると、問題が発生します。関数は次のとおりです。
def getUserList(connection):
li = []
cur = connection.cursor()
query = 'select username, password, firstname, lastname, description, phone,'+
'email, isAdmin, isAutoBoot from users_tbl'
cur.execute(query)
for usr, pwd, fn, ln, des, ph, em, ad, au in cur.fetchall():
temp = User(usr, pwd, fn, ln, des, ph, em, ad, au)
cur.close()
#con.close()
return li
モジュールをインポートしてこの関数を実行すると、TypeErrorが発生します。
Traceback (most recent call last):
File "<pyshell#71>", line 1, in <module>
import_user.getUserList(s_con)
File "c:/python27/mymodule\import_user.py", line 12, in getUserList
cur.execute(query)
TypeError: string indices must be integers
ただし、Python IDLEでこれらの各行をコピーして実行すると、正常に実行され、カーソルを実行してもエラーは発生しません。これは、pyodbcまたはsqlite接続を入力パラメーターとして渡す場合の両方で発生します。
ありがとう