Sqlite数据库图片存取
来源:互联网 发布:centos 限制访问ip 编辑:程序博客网 时间:2024/05/17 01:39
本例只涉及jpeg图片的存取
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBGridEhGrouping, ExtDlgs, DB, ASGSQLite3, ExtCtrls, StdCtrls,
GridsEh, DBGridEh,jpeg;
type
TForm1 = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
DBGridEh1: TDBGridEh;
Button1: TButton;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Image1: TImage;
Label3: TLabel;
Image2: TImage;
SQLite3DB1: TASQLite3DB;
SQLite3Query1: TASQLite3Query;
DataSource1: TDataSource;
OpenPictureDialog1: TOpenPictureDialog;
SQLite3Table1: TASQLite3Table;
Button2: TButton;
Button3: TButton;
Button4: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
i:Integer=0;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
SQLite3DB1.DefaultDir:=ExtractFilePath(ParamStr(0));
SQLite3DB1.Database:='test.db';
SQLite3DB1.Open;
SQLite3Query1.Connection:=SQLite3DB1;
with SQLite3Query1 do
begin
Close;
SQL.Clear;
SQL.Add('select id, text from tab');
Open;
end;
DataSource1.DataSet:=SQLite3Query1;
DBGridEh1.DataSource:=DataSource1;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
OpenPictureDialog1.Filter:='Jpeg文件(*.jpeg;*.jpg)|*.jpg;*.jpeg ';
OpenPictureDialog1.DefaultExt:='.jpg';
OpenPictureDialog1.FilterIndex:=1;
Image1.Stretch:=True;
if OpenPictureDialog1.Execute then
begin
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;
Edit1.Text:=OpenPictureDialog1.FileName;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
stm:TMemoryStream;
begin
if( Edit1.Text='') or (Image1.Picture.Graphic =nil) then
begin
ShowMessage('增加的内容不全,不能增加记录,请确定你要增加的项目');
Exit;
end
else
begin
stm:=TMemoryStream.Create;
stm.LoadFromFile(Edit1.Text);
with SQLite3Query1 do
begin
Close;
SQL.Clear;
SQL.Add('insert into tab(text,img) values(:a,:b)');
Params.ParamByName('a').AsString:=Edit1.Text;
Params.ParamByName('b').LoadFromStream(stm,ftBlob);
ExecSQL;
Close;
SQL.Clear;
SQL.Add('select id,text,img from tab');
Open;
end;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
imgstm:TMemoryStream;
jpg:TJPEGImage;
// i:Integer;
begin
// i:=0;
with SQLite3Query1 do
begin
Close;
SQL.Clear;
SQL.Add('select text,img from tab');
Open;
end;
SQLite3Query1.First;
if i<=SQLite3Query1.RecordCount then
begin
SQLite3Query1.MoveBy(i); //移动记录指针
inc(i);
imgstm:=TMemoryStream.Create;
Edit1.Text:=SQLite3Query1.FieldByName('text').AsString;
TBlobField( SQLite3Query1.FieldByName('img')).SaveToStream(imgstm);
imgstm.Position:=0;
jpg:=TJPEGImage.Create;
jpg.LoadFromStream(imgstm);
Image2.Picture.Graphic:=jpg;
Image1.Picture:=Image2.Picture;
imgstm.Free;
jpg.Free;
end
else
begin
ShowMessage('已到最后记录'+#10#13+'共有'+inttostr( SQLite3Query1.recordcount)+'条记录');
end;
end;
end.
- Sqlite数据库图片存取
- Android-sqlite数据库存取图片信息
- Android-sqlite数据库存取图片信息
- SQLite数据库的使用(图片在数据库中的存取)
- SQLite存取图片
- Android SQLite存取图片
- 使用SQLite数据库存取mp3和图片等二进制数据
- ImageView中的图片怎么在SQLite数据库中存取.txt
- 数据库存取图片
- 数据库中存取图片
- 数据库存取图片
- C#数据库存取图片
- 图片存取数据库(java)
- 数据库存取图片
- 数据库中存取图片
- 图片的数据库存取
- oracle数据库存取图片
- java数据库 存取图片
- [Java]知乎下巴第1集:爬虫世界百度不仅仅可以拿来测网速
- 零式求和
- 计算时代
- MVC评点
- JBoss服务器 /invoker/JMXInvokerServlet/ 接口对外开放
- Sqlite数据库图片存取
- java中获取路径的几种方式
- 从输入的数字序列中分别求奇数和偶数
- 不能将参数1从“const char []”转换为“LPCTSTR
- Hashmap的遍历
- delphi insert各种类型数据(数据库InterBase)
- 我的第一篇博文
- jquery mobile 入门介绍
- 对于进制转化的感想