delphi:procedure TForm1.Button1Click(Sender: TObject);
begin
   if OpenPictureDialog1.Execute then
   Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;procedure TForm1.Button2Click(Sender: TObject);
begin
   ADOTable1.Append;
   TBlobField(ADOTable1.FieldByName('FImage')).LoadFromFile(OpenPictureDialog1.FileName);
   ADOTable1.Post;
end;

解决方案 »

  1.   

    My Practice (Delphi)unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Mask, DBCtrls, StdCtrls, DB, DBTables, ComCtrls, ExtCtrls,
      Buttons;type
      TMainForm = class(TForm)
        TblSounds: TTable;
        dsSounds: TDataSource;
        edTitle: TEdit;
        Label1: TLabel;
        Label2: TLabel;
        edFileName: TDBEdit;
        OpenDialog: TOpenDialog;
        SaveDialog: TSaveDialog;
        Panel1: TPanel;
        sbPlay: TSpeedButton;
        sbAdd: TSpeedButton;
        sbSave: TSpeedButton;
        sbExit: TSpeedButton;
        Bevel1: TBevel;
        stbStatus: TStatusBar;
        TblSoundsFileName: TStringField;
        TblSoundsWave: TBlobField;
        TblSoundsWaveTitel: TStringField;
        procedure sbAddClick(Sender: TObject);
        procedure sbSaveClick(Sender: TObject);
        procedure sbPlayClick(Sender: TObject);
        procedure sbExitClick(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        procedure OnAppHint(Sender:TObject);
        { Private declarations }
      public
        { Public declarations }
      end;var
      MainForm: TMainForm;implementation{$R *.dfm}
    uses MMSystem;procedure TMainForm.sbAddClick(Sender: TObject);
    begin
      if OpenDialog.Execute then
      begin
        tblSounds.Append;
        tblSounds['FileName']:=ExtractFileName(OpenDialog.FileName);
        tblSoundsWave.LoadFromFile(OpenDialog.FileName);
        edTitle.SetFocus;
        tblSounds['WaveTitel']:=edTitle.Text;
      end;
    end;procedure TMainForm.sbSaveClick(Sender: TObject);
    begin
      with SaveDialog do
      begin
        FileName:=tblSounds['FileName'];//初始化文件名;
        if Execute then
          tblSoundsWave.SaveToFile(FileName);//把BLOB数据保存到文件 
      end;
    end;procedure TMainForm.sbPlayClick(Sender: TObject);
    var
      B:TBlobStream;
      M:TMemoryStream;
    begin
      B:=TBlobStream.Create(tblSoundswave,bmRead);//创建BLOB流
      Screen.Cursor:=crHourGlass;
      try
        M:=TMemoryStream.Create;//创建流
        try
          M.CopyFrom(B,B.Size);//从BLOB字段复制到流
          //播放声音
          win32check(PlaySound(M.Memory,0,SND_SYNC or SND_MEMORY));
        finally
          M.Free;
        end;
      finally
        Screen.Cursor:=crDefault;
        B.Free;  //释放流对象
      end;
    end;procedure TMainForm.sbExitClick(Sender: TObject);
    begin
      Application.Terminate;
      Action.Free;
      close;
    end;procedure TMainForm.FormCreate(Sender: TObject);
    begin
      Application.OnHint:=OnAppHint;
    end;procedure TMainForm.OnAppHint(Sender: TObject);
    begin
      stbStatus.SimpleText:=Application.Hint;
    end;end.