Как использовать clojure jdbc execute?

Я изо всех сил пытаюсь заставить функцию 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!?


person Kim    schedule 26.10.2013    source источник
comment
Выполняется! нужно быть внутри транзакции, чтобы быть совершенным?   -  person Jason Sperske    schedule 27.10.2013
comment
Это происходит в любом случае, но, как упомянул PositiveLogic, теперь я вижу, что это известная проблема.   -  person Kim    schedule 27.10.2013


Ответы (1)


Во время этого ответа -> Использование execute! без параметров для вставки строки происходит сбой в SQLite ‹- указан как все еще нерешенная проблема, которая будет решена в бета-версии 0.3.0 java.jdbc

person PositiveLogic    schedule 27.10.2013