先uses jpeg.在放一个dbimage.with adoquery1 do
begin
append;
dbimage1.loadfromile('c:\b.jpg');
post;
end;
begin
append;
dbimage1.loadfromile('c:\b.jpg');
post;
end;
解决方案 »
- 一个TList指针问题.昨天弄了一晚上都没有办法搞定,请高手帮忙.
- 如何实现软件可选择语言适合繁体简体操作系统?
- 恭喜CSDN论坛又开,放分~,不过好象收藏夹的东西没了~
- 讨论贴:大家认为今年的NBA总冠军是哪个队?
- “无法为更新行集定位:一些值可能已在最后读取后改变。”我没分了
- 大数问题?做过rsa等加密算法的达人进来看看?
- 请教:如何在命令(DOS窗)里编译Delphi程序?
- 我菜,但我有分 ,给!!! 问题:如何将整数转换为规定位数的字符串 100分 快,等着用
- 请原谅,问个题外话
- 怎么得到Timage的Picture.Data里的数据
- 两个存放在不同目录中的ini文件用什么方法比较起来比较方便?
- 如何使用paradox.net?
Dbimage1.Picture.LoadFromFile('F:\49.bmp');
DBimage1.CutToClipboard;
Dbimage1.PasteFromClipboard;
Table1id.Value:=7;
table1.post;
table直接读入Image的Picture。
you must make the DateSet in editing phase;
var
FileStream:TFileStream;
BlobStream:TBlobStream;
Buffer:Pchar;
MemSize:Integer;begin
Try
FileStream:=TFileStream.Create('path of pic',bmRead);
MemSize:=FileStream.Size;
Inc(MemSize);
Buffer:=GetMem(MesSize);
BlobStream:=TBlobStream.Create('your pic field' as TBlobField,fmWrite);
BlobStream.Position:=0
BlobStream.Truncate;
FileStream.Read(Buffer^,MemSize);
BlobStream.Write(Buffer^,Memsize);
Finally
FileStream.Free;
BlobStream.Free;
FreeMem(Buffer,MemSize);
End;end;
Delphi Database Course for beginners.
Displaying images (BMP, JPEG, ...) inside
an Access database with ADO and Delphi.}unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Buttons, ExtCtrls, StdCtrls, Db, ADODB, Grids, DBCtrls, DBGrids;type
TForm1 = class(TForm)
ADOTable1: TADOTable;
DataSource1: TDataSource;
btnShowImage: TButton;
ADOImage: TImage;
ADOTable1Name: TWideStringField;
ADOTable1Description: TWideStringField;
ADOTable1Author: TWideStringField;
ADOTable1Type: TWideStringField;
ADOTable1Size: TFloatField;
ADOTable1Cost: TBCDField;
ADOTable1DateUpl: TDateTimeField;
ADOTable1Picture: TBlobField;
DBGrid1: TDBGrid;
procedure btnShowImageClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const
JPEGstarts = 'FFD8';
BMPstarts = '424D'; //BMvar
Form1: TForm1;implementation
uses jpeg;
{$R *.DFM}function JpegStartsInBlob (PicField:TBlobField):integer;
var
bS : TADOBlobStream;
buffer : Word;
hx : string;
begin
Result := -1;
bS := TADOBlobStream.Create(PicField, bmRead);
try
while (Result = -1) and (bS.Position + 1 < bS.Size) do
begin
bS.ReadBuffer(buffer, 1);
hx:=IntToHex(buffer, 2);
if hx = 'FF' then begin
bS.ReadBuffer(buffer, 1);
hx:=IntToHex(buffer, 2);
if hx = 'D8' then Result := bS.Position - 2
else if hx = 'FF' then bS.Position := bS.Position-1;
end; //if
end; //while
finally
bS.Free
end; //try
end;procedure TForm1.btnShowImageClick(Sender: TObject);
var
bS : TADOBlobStream;
Pic : TJpegImage;
begin
bS := TADOBlobStream.Create(AdoTable1Picture, bmRead);
try
bS.Seek(JpegStartsInBlob(AdoTable1Picture), soFromBeginning);
Pic:=TJpegImage.Create;
try
Pic.LoadFromStream(bS);
ADOImage.Picture.Graphic:=Pic;
finally
Pic.Free;
end;
finally
bS.Free
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var sDBPath, sCons: string;
begin
//change the sDBPath to point to your database!
sDBPath := 'c:\!Gajba\About\aboutdelphi.mdb';
sCons := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + sDBPath + ';Persist Security Info=False';ADOTable1.ConnectionString := sCons;
ADOTable1.TableName := 'Applications';
DataSource1.DataSet := ADOTable1;
DBGrid1.DataSource := DataSource1;ADOTable1.Active:=True;
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
ADOTable1.Active:=False;
end;
//Extra!! save JPG to table
procedure SaveJpegToTable(Table: TADOTable; PicField:TBlobField; sPicPath: string);
{
Usage: SPicFileName := 'C:\!gajba\cdcovers\cdcover1.jpg';
SaveJpegToTable(ADOTable1, ADOTable1Picture, SPicFileName);
}
var
fS : TFileStream;
begin
fs:=TFileStream.Create(sPicPath, fmOpenRead);
try
Table.Edit;
PicField.LoadFromStream(fs);
Table.Post;
finally
fs.Free;
end;
end;
end.
BMPstarts = '424D'; //BMP 文件开头标志