我刚学Delphi不久,对很多问题还没有概念。现在需要用delphi编一个存储SQL数据库的程序,其中有一个字段存储的是图片,还有存储视频的字段。我想请教一下大家我该怎么样把图片或是视频直接存储在SQL数据库中?用那方面的知识,最好有实例做参考。 先谢谢大家!!

解决方案 »

  1.   

    用流来存取
    procedure TForm1.Button1Click(Sender: TObject);
    var
      JPGImg: TJPEGImage;
      ADOData: TADOBlobStream;
    begin
      ADOQuery1.Open;
      ADOQuery1.Edit;
      //ADOQuery1.FieldValues['ID'] := '2';
      JPGImg := TJPEGImage.Create;
      ADOData := TADOBlobStream.Create(TBlobField(ADOQuery1.FieldByName('PicID')), bmWrite);
      try
        JPGImg.Assign(Image1.Picture.Bitmap);
        JpgImg.SaveToStream(ADOData);
      finally
        JPgImg.Free;
        ADOData.Free;
      end;
      ADOQuery1.Post;
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
      BS : TStream;
      aStream: TADOBlobStream;
      pic : TJPEGImage;
    begin
      ADOQuery2.Open;
      ADOQuery2.First;
      BS := ADOQuery1.CreateBlobStream(ADOQuery2.FieldByName('PicID'), bmRead);
      if not ADOQuery2.FieldByName('PicID').IsNull then
      begin
        aStream := TADOBlobStream.Create(TBlobField(ADOQuery2.FieldByName('PicID')), bmRead);
        pic := TJPEGImage.Create;
        try
          pic.LoadFromStream(aStream);
          Image2.Picture.Assign(pic);
        finally
          pic.Free;
        end;
      end
      else
      begin
        ShowMessage('fdsa');
        Image2.Picture.Assign(nil);
      end;
    end;