私はsqlite db接続をコピーして、代わりに〜6行をコピーして貼り付け、場所を問わずクエリを実行する必要があると考えていました。 私は多用途にしたいので、作成/選択/挿入/などに同じ機能を使用できます。関数にsqlite接続とカーソルを置くことはできますか?
以下は私が試したことです。 'INSERT'と 'CREATE TABLE'のクエリは機能していますが、 'SELECT'クエリを実行すると、関数の外部でフェッチする値をどのように処理できますか?
通常、私はフェッチする値を印刷したいし、他のものもそれらと一緒にしたいと思います。私はエラー
Traceback (most recent call last):
File "C:\Users\steini\Desktop\py\database\test3.py", line 15, in <module>
for row in connection('testdb45.db', "select * from users"):
ProgrammingError: Cannot operate on a closed database.
を取得し、以下のように私はそれがだから私はので、私は、カーソルから値を取得することができ、接続がオープンにする必要があると思いますが、私はそうファイルのISNを、それを閉じる必要があり
常にロックされていません。ここで
は私のテストコードです:
import sqlite3
def connection (db, arg, cubby):
conn = sqlite3.connect(db)
conn.execute('pragma foreign_keys = on')
cur = conn.cursor()
cur.execute(arg)
for row in cur:
cubby.append(row)
conn.commit()
conn.close()
cubby=[]
connection('testdb.db', "create table users ('user', 'email')", cubby)
connection('testdb.db', "insert into users ('user', 'email') values ('joey', '[email protected]')", cubby)
for row in connection('testdb45.db', "select * from users", cubby):
print row
は、どのように私はこの作業を行うことができますか?
編集:私は、問題はもう少し、それは最初は見た目より難しいと思い、それが外部リストに追加されますので、少しので、CUR値をコードを変更し、それでもかなり悪い
素晴らしい、私はもう少しそれを取り巻く必要がありますが、これまでのところ、このクラスは私がやっていることを完全に動作するようです。ありがとう –
マイナーニトロ、しかし必要:あなたの2番目のコードブロックのfor文の後:) –