【发布时间】:2010-02-19 12:50:46
【问题描述】:
我正在创建一些要更新到数据库表中的图表。我遵循的程序是:
- 将图表创建为 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,在pngFile字段中有相应的记录,值为NULL。
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="")
这也失败了。
请指教。
【问题讨论】: