获取图像从数据库
问题描述:
function PgMain_rptArticles_OnRowRender(e){
var records = Data.execute('select * from Articles');
Data.Dataset1.seek(e.rowIndex);
Pages.PgMain.rptArticles.Image1.image = records.rows[e.rowIndex][3];
Pages. PgMain.rptArticles.Label1.text = records.rows[e.rowIndex][1];
Pages. PgMain.rptArticles.Label2.text = records.rows[e.rowIndex][2]
}
如何从数据库中获取的图像?
答
将大型二进制文件直接保存到数据库是非常罕见的。更常见的方法是将图像保存到文件并将路径保存到数据库。
见讨论的几个:
How to store image in SQLite database
Android Save images to SQLite or SDCard or memory
我假设你宁愿保存到数据库的引用,我的回答是基于这个。
看看这里的例子: http://docs.smartface.io/html/T_SMF_IO_File.htm
SMF.Multimedia.startCamera({
cameraType : 1, //rear camera
resolution : 2, //large resolution
autoFocus : true,
onStart : function() {}, //do nothing
onCapture : function (e) {
var photoFile = new SMF.IO.File(e.photoUri); //the full URI is given
var destination = SMF.IO.applicationDataDirectory + //predefined path already containing separator at the end
"data" + SMF.IO.pathSeperator + "tbl1" +
SMF.IO.pathSeperator + photoFile.name; //name gives file name with extension
var targetFile = new SMF.IO.File(destination);
if(!targetFile.exists) {
if(photoFile.move(destination)) { //if moved successfully
//photoFile nativePath has been updated
Data.execute("Insert into tbl1 (image) values(?)",
photoFile.nativePath); //records reference to database
}
}
},
onCancel : function() {}, //do nothing
onFailure : function() {}
//do nothing
});
您将节省的“目的地”变量(指上面的例子),以数据库和取一部分,那么会是这样:
Pages.PgMain.rptArticles.Image1.image = SMF.Image(records.rows[e.rowIndex][3]);