データベースに関する質問
実行結果が表示されない
データベースsample2.dbを作って登録したあと、出力するようなプログラムをコラボラトリーで作成しているのですが、どうも実行結果が表示されなく、原因がわかりません。解決方法などはありますか?教えていただけると幸いです。テーブルを作成するセルとデータの登録や表示を行うセルは分けています。
データベースsample2.dbを作って登録したあと、出力するようなプログラムをコラボラトリーで作成しているのですが、どうも実行結果が表示されなく、原因がわかりません。解決方法などはありますか?教えていただけると幸いです。テーブルを作成するセルとデータの登録や表示を行うセルは分けています。
データ挿入1~6の部分ですが、変数sqlにSQL文を代入した後、execute()が必要ではないでしょうか?
データが挿入されていないので select しても表示するものが無いのだと思います。
@nabenabebe
Questioner
sql = "insert into ...."
と書かれている部分はsqlという変数(箱)に文字を入れているだけでこれ自身はデータベースを操作するものではありません。
追記されたcsr.execute()ですが、これもデータベースへ「実行せよ」と命じているだけで「何を」という部分がありません。
create table でテーブルを作成する箇所や、select でデータを取得するところでもcsr.execute()を使っていますが、違いをよくみると足りない部分が理解できると思います。
特別、sqlite3の知識を持ち合わせていませんが、どんな場合にも言えることは
『エラーメッセージをちゃんと読みましょう。』です。
TypeError: excute excepted at least 1 argument, got 0
Google翻訳:TypeError: 実行には少なくとも 1 つの引数が必要ですが、0 を取得しました (「実行」と訳されていますが、excuteのことでしょう)
「矢印で示された行番号24のcsr.execute()
に引数が無いよ」というエラーです。
execute()の引数で複数のsqlを指定できるならば 最後に1回でよいですが、
1回一つだけなら、insert文一つ一つにexecute(sql)が必要だと思います。