Как проверить, закончился ли «Отправить запрос»? - PullRequest
4 голосов
/ 03 октября 2019

Мне нужно проверить, закончился ли мой res из dbSendQuery().

Мой код такой:

db <- dbConnect(drv=SQLite(),flags=SQLITE_RW,dbname="db.sqlite",synchronous = "off")
dbBegin(db)
res <- dbSendQuery(db,"Update Operation SET Name = 'teste' where Id = 1")
if("my SendQuery is over"){
  dbClearResult(res)
  dbCommit(db)
  dbDisconnect(db)
}

Мне нужно знать, когда он закончится, чтобы отправитьэто для фиксации, а затем отключения.

ОБНОВЛЕНИЕ 1 Я моя система, для этого примера выше может происходить более чем с 1 пользователем одновременно. Затем, когда закончится первое соединение в БД, мне нужно завершить его запрос и предоставить другому соединению возможность написать ваш запрос.

1 Ответ

2 голосов
/ 03 октября 2019

dbSendQuery() всегда ожидает завершения. Вы можете перепроверить, вызвав dbGetRowsAffected(res).

. Для операторов SQL, которые запускаются для побочного эффекта и не возвращают значение, предпочтительным является dbSendStatement().

synchronous = "off"аргумент dbConnect() является неправильным, он определяет, когда и как данные записываются на диск;здесь нет многопоточности.

...