看一段代码,请指明错误所在(有关于把扫描的图片以*.JPG格式保存在数据库中),急,请有经验的高手多多指教(100分)

  • 主题发起人 主题发起人 loutian
  • 开始时间 开始时间
L

loutian

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm_scaner.SpeedButton1Click(Sender: TObject);
begin
Sfilename:=extractfilepath(application.exename)+'temp.bmp';
if fileExists(SFilename) then deletefile(Sfilename);
//if DirectoryExists('c:/temp') then showmessage('');

imgedit1.zoom:=100; //设置图象的放缩因子
//imgedit1.FitTo(0);
imgscan1.ScanTo:=1;
imgscan1.image:=Sfilename;

if not imgscan1.ScannerAvailable then
//如果选择的扫描仪不可用
imgscan1.OpenScanner;//打开扫描仪
imgscan1.StartScan; //开始扫描图象
imgscan1.CloseScanner; //关闭扫描
end;

procedure TForm_scaner.SpeedButton2Click(Sender: TObject);////保存按钮
var
Jpeg1:TJpegImage;
Bmp:TBitmap;
MS: TMemoryStream;
begin
screen.Cursor:=crhourglass;
Bmp:=TBitmap.create;
bmp.LoadFromFile(SFilename);
Jpeg1:=TJpegImage.Create;
Jpeg1.Assign(bmp);
// Jpeg.SaveToFile(SaveName);
MS:=TMemoryStream.create;
//jpeg1.SaveToStream(ms);
jpeg1.SaveToStream(ms);
MS.Position:=0;
adotable1.open;
adoTable1.Append;
//在数据库中添加一条记录
adotable1.FieldByName('remoteid').AsString:=inttostr(form_bjsl.yc_lsh);
TBlobField(adoTable1.FieldbyName('photo')).LoadFromStream(MS);
adoTable1.Post;
//将所作的更新写入数据库//
bmp.Free;
Jpeg1.Free;
screen.Cursor:=crdefault;
end;

我在执行这段代码时,当我保存第一张图片时执行正常,可是当我继续保存其它图片时数据库里
有记录生成,可是我用imageedit查看时,数据库中返回多条(第一张图片),而且在保存后几张图片
时,鼠标从忙状态变成空闲状态的时间间隔明显大大快于保存第一张图片(后几张图片内容大于第一张的情况下)
望有经验的高手指教,非常感谢

 
没做过替你顶
 
ms没有释放,另外可以在保存前看一下生成的temp.bmp文件。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
937
SUNSTONE的Delphi笔记
S
后退
顶部