Я создаю несколько графиков, которые хочу обновить в таблицу базы данных. Процедура, которой я придерживаюсь:
- создать графики в виде файла png / jpeg.
- Читать этот файл как двоичный вектор
- SQLUpdate
Мой код для шагов 2 и 3:
pngfile <- file(<filename>, "rb")
N <- 1e6
repeat{
pngfilecontents <- readBin(pngfile, what="raw", n=N)
if(length(pngfilecontents) == N) N <- 5 * N else break
}
close(pngfile)
В базе данных есть таблица df_DemandPatternMaster с первичным ключом DemandPatternID, с соответствующей записью на месте со значением NULL в поле pngFile.
update.query <- "update df_DemandPatternMaster set "
update.query <- paste( update.query, " pngFile = '", serialize(pngfilecontents, NULL) , "' where DemandPatternID = ", , sep="")
d <- sqlQuery(connection, update.query)
Я заканчиваю тем, что вставляю только байт данных. Кажется, причина в том, что paste видит сериализованный вектор и создает вектор с текстом префикса и суффикса.
Я также попытался передать дескриптор файла PNG напрямую
pngfile <- file(<filename>, "rb")
update.query <- paste( update.query, " pngFile = '", pngfile, "' where DemandPatternID = ", , sep="")
Это также не помогает.
Пожалуйста, сообщите.