sqlite中有一種資料型別叫做Blob,可以滿足我們的要求。
資料庫中照片欄位Photo BLOB
寫入:
var
SqliteDB: TSQLiteDatabase;
FS: TFileStream;
begin
SqliteDB:=TSQLiteDatabase.Create("database.db");
FS := TFileStream.Create("test.jpeg",fmOpenRead);
SqliteDB.UpdateBlob("UPDATE PhotoLib set Photo = ? WHERE ID = 1",FS);
FS.free;
SqliteDB.Free;
end;
讀取至TImage控制元件顯示:
SqliteTB:=SqliteDB.GetTable("Select * From PhotoLib Where Id=1");
MS := SqliteTB.FieldAsBlob(SqliteTB.FieldIndex["photo"]);
if (MS = nil) then
showmessage("無照片記錄.");
exit;
MS.Position := 0;
PIC := TJPEGImage.Create;
PIC.LoadFromStream(ms);
self.Image2.Picture.Graphic := PIC;
MS.free;
PIC.Free;
sqlite中有一種資料型別叫做Blob,可以滿足我們的要求。
資料庫中照片欄位Photo BLOB
寫入:
var
SqliteDB: TSQLiteDatabase;
FS: TFileStream;
begin
SqliteDB:=TSQLiteDatabase.Create("database.db");
FS := TFileStream.Create("test.jpeg",fmOpenRead);
SqliteDB.UpdateBlob("UPDATE PhotoLib set Photo = ? WHERE ID = 1",FS);
FS.free;
SqliteDB.Free;
end;
讀取至TImage控制元件顯示:
SqliteDB:=TSQLiteDatabase.Create("database.db");
SqliteTB:=SqliteDB.GetTable("Select * From PhotoLib Where Id=1");
MS := SqliteTB.FieldAsBlob(SqliteTB.FieldIndex["photo"]);
if (MS = nil) then
begin
showmessage("無照片記錄.");
exit;
end;
MS.Position := 0;
PIC := TJPEGImage.Create;
PIC.LoadFromStream(ms);
self.Image2.Picture.Graphic := PIC;
MS.free;
PIC.Free;