7

sqlite db を作成し、ホスティングにアップロードしました。

次に、スクリプトからそれを取得してデータを挿入しようとしていますが、execute() は

DatabaseError (file is encrypted or is not a database).

urllib.urlretrieve('http://%s/%s' % (HOST, NAME_DB), NAME_DB)
con = sqlite3.connect(NAME_DB)
cur = con.cursor()
cur.execute('insert into log(date, count, average) values(date("now"), ?, ?)', (1, 1.2))
con.commit()
con.close()

Traceback (most recent call last):
  File "mylog.py", line 17, in <module>
    cur.execute('insert into log(date, count, average) values(date("now"), ?, ?)', (1, 1.2)) 
sqlite3.DatabaseError: file is encrypted or is not a database

sqlite CLI を使用してデータを挿入すると、このようなエラーは発生しません。手伝っていただけませんか?

4

4 に答える 4

10

sqlite CLI と python sqlite API のバージョンが一致しませんか? CLI ではなくスクリプトからデータベースを再度作成しました。ここで、CLI からではなく、スクリプトから作業を挿入して選択します。$sqlite -versionPython のバージョンは 2.7.3 ですが、2.8.17 を返します。

于 2013-09-03T21:01:49.150 に答える
2

SQLite3ライブラリを使用してC++コードで作成されたデータベースで同じ問題が発生し、後でSQLite3のPython 2.7バージョンでアクセスされました。Python スクリプトでデータベースにクエリを実行できませんでした。コンピューターの問題を解決するために、次のバージョンを変更しました。

C:\Python27\DLLs\sqlite3.dll

C++ Sqlite ライブラリ ディレクトリにあるバージョンの場合。

于 2014-08-18T18:42:18.347 に答える
0

さて、私は同じ問題に直面し、Visionnaire が言ったように、もともと含まれている CLIフォルダー内sqlite3.dllpythonXX\DLLsを置き換えるだけで、問題は解決しましたsqlite3.dllsqllitesqlite3.exe

于 2015-09-05T16:12:23.027 に答える