So laden Sie ein Bild in R auf SQL Server hoch
Ich erstelle einige Diagramme, die ich in eine Datenbanktabelle aktualisieren möchte. Das Verfahren, das ich folge, ist:
Erstellen Sie die Grafiken als PNG / JPEG-Datei.Lesen Sie diese Datei als binären VektorsqlUpdateMein Code für die Schritte 2 und 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)
In der Datenbank befindet sich eine Tabelle df_DemandPatternMaster mit dem Primärschlüssel DemandPatternID und einem entsprechenden Datensatz mit dem Wert NULL im Feld pngFile.
update.query <- "update df_DemandPatternMaster set "
update.query <- paste( update.query, " pngFile = '", serialize(pngfilecontents, NULL) , "' where DemandPatternID = ", , sep="")
d <- sqlQuery(connection, update.query)
Am Ende füge ich nur ein Byte Daten ein. Der Grund dafür scheint zu sein, dass paste den serialisierten Vektor erkennt und einen Vektor mit dem Präfix und Suffix text erstellt. Ich habe auch versucht, das PNG-Datei-Handle direkt zu übergeben
pngfile <- file(<filename>, "rb")
update.query <- paste( update.query, " pngFile = '", pngfile, "' where DemandPatternID = ", , sep="")
Dies schlägt ebenfalls fehl.
Bitte beraten.