我写了段把图片文件存储到数据库的代码,编译能通过,就是不能存数据,高手帮看看这是什么问题!
var fs : TFileStream;
    ext,n: string;
begin
  n:=Opendialog1.FileName;
  if not FileExists(n) then
    begin
     Application.MessageBox(PChar('ÕÒ²»µ½Îļþ'+n),'´íÎó',MB_ICONERROR);
     Exit;
    end;
  ext := ExtractFileExt(n);
  fs := TFileStream.Create(n,fmOpenRead);
  ADOTable1.Append;
  try
   adotable1.FieldByName('Name').AsString:=ext;
   fs.Position:=0;
   TBlobField(adotable1.FieldByName('Date')).LoadFromStream(fs);
   adotable1.Post;
  finally
  fs.Free;
  end;
end;

解决方案 »

  1.   

    应该没有问题啊 
    或者你直接用TBlobField(FieldByName('Data')).LoadFromFile(n);就行了,干嘛还用stream捣腾一下啊
      

  2.   

    感觉是没什么问题啊!!
    可是就是存不了图片进数据库里
    我用的是access数据库,Date的属性是OLE的
      

  3.   

    TBlobField(FieldByName('Data')).LoadFromFile;肯定没问题,我刚用过,也是Access数据库
      

  4.   

    用TFileStream和TMemoryStream我都试了,没有问题
    是不是存进去了只是你没有读出来吧?
      

  5.   

    我晕。编译都通不过
    就这一句出问题了TBlobField(FieldByName('Data')).LoadFromFile;
    to:星雨  老兄能不能把你的程序发个给我
    我是找不出什么问题来了!!
    头疼啊~~我的油箱[email protected]
    先谢谢了
      

  6.   

    程序关联太多了,把主要的代码贴一下吧,你参考一下:1)用LoadfromFile方法:
      if qDoc.Active then  //qDoc是一AdoQuery
      begin
        if OpDlg.Execute then // OpDlg是一个OpenDialog
        begin
          qDoc.Edit;  //把nField替换成你的ole字段名
          TBlobField(qDoc.FieldByName(bField)).LoadFromFile(OpDlg.FileName);
          qDoc.Post;
        end;
      end;2)用TMemoryStream
    var
      Stream: TMemoryStream;
    begin
      Stream:=TMemoryStream.Create;
      if qDoc.Active then
      begin
        if OpDlg.Execute then
        begin
          stream.LoadFromFile(OpDlg.FileName);
          Stream.Seek(0,soFromBeginning);
          qDoc.Edit;
          TBlobField(qDoc.FieldByName(bField)).LoadFromStream(Stream);
          qDoc.Post;
          Stream.Seek(0,soFromBeginning);
        end;
      end;
      Stream.Free;
    end;
     
    3)用TFileStream:
      fStream: TFileStream;
    begin
      if qDoc.Active then
      begin
        if OpDlg.Execute then
        begin
          fStream:=TFileStream.Create(OpDlg.FileName,fmOpenRead);
          fStream.Seek(0,soFromBeginning);
          qDoc.Edit;
          TBlobField(qDoc.FieldByName(bField)).LoadFromStream(fStream);
          qDoc.Post;
          fStream.Free;
        end;
      end;end;
      

  7.   

    1)用LoadfromFile方法:
      if qDoc.Active then  //qDoc是一AdoQuery
      begin
        if OpDlg.Execute then // OpDlg是一个OpenDialog
        begin
          qDoc.Edit;  //把nField替换成你的ole字段名
          TBlobField(qDoc.FieldByName(bField)).LoadFromFile(OpDlg.FileName);
          qDoc.Post;
        end;
      end;
    这段是写在button里???
    能通过编译,点button没反应。
      

  8.   

    有么有方法把Image里的图片存到数据库里?