1

jdbc/execute!SQLite データベースに加えた変更をコミットする関数を取得するのに苦労しています。

例えば、

user=> (jdbc/execute! sqlite-db ["insert into person (second_name) values ('Gandhi');"])
nil

nilが返され、行は挿入されません。ただし、無効なテーブル名を使用してエラーが発生する可能性があるため、関数が何らかの形でデータベースに接続していることはわかっています。

user=> (jdbc/execute! sqlite-db ["insert into ABCDEFG (second_name) values ('Gandhi');"])

SQLException [SQLITE_ERROR] SQL error or missing database (no such table: ABCDEFG)  org.sqlite.DB.newSQLException (DB.java:383)

jdbc ライブラリにもjdbc/insert!関数が含まれており、これを使用して正しく挿入できます。ただし、アプリケーションでより複雑なステートメントを使用しているため、代わりに関数を使用したかったexecute!ため、パラメーター化された SQL 文字列を提供すると考えました。

execute!関数を使用するとどこが間違っていますか?

4

1 に答える 1

3

この回答の時点で->実行を使用してください!SQLite で行を挿入するためのパラメータがない場合に失敗する<- java.jdbc のベータ 0.3.0 で解決される未解決の問題としてリストされています

于 2013-10-27T02:31:29.840 に答える