我做了一个学生管理系统,在添加学生时须添加照片(JPEG格式),我采用的是adotable控件,请问我怎样双击dbimage控件后就能将这个JPEG格式的图片存入SQL SERVER的IMAGE字段中??
还有我在浏览该学生时希望在dbimage中显示该学生的照片该怎样做?
以上两个问题希望高手给出代码和操作方法??小弟万分感激??

解决方案 »

  1.   

    给你贴一个我作人事管理时写的代码
    //上传照片
    procedure TFrm_Persons_Change.Button1Click(Sender: TObject);
    begin
      if not OpenPictureDialog1.Execute then exit;  
      Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
      Frm_Persons.ADOTable1.FieldByName('F_Photo').AsString:=OpenPictureDialog1.FileName;
    end;//删除照片
    procedure TFrm_Persons_Change.Button2Click(Sender: TObject);
    begin
      Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'no.bmp');
      Frm_Persons.ADOTable1.FieldByName('F_Photo').AsString:='';
    end;
      

  2.   

    //显示照片
    procedure TFrm_Persons_Change.FormShow(Sender: TObject);
    begin
      if FileExists(ADOTable1.FieldByName('F_Photo').AsString) then
         Image1.Picture.LoadFromFile(ADOTable1.FieldByName('F_Photo').AsString);
    end;
      

  3.   

    注意相对路径和绝对路径,不要将软件写死。。下面是存:
    procedure TCPGL.SpeedButton2Click(Sender: TObject);
    var
      public_image: tpicture;
    begin
      if self.OpenPictureDialog1.Execute then
      begin
        fcImager1.Picture.LoadFromFile(self.OpenPictureDialog1.filename);
        DM.CPGL_ADOQuery.edit;
        DM.CPGL_ADOQuery.fieldbyname('tp').asstring :=
          'bmp\Product' + extractfilename(self.OpenPictureDialog1.filename);
        copyfile(pchar(self.OpenPictureDialog1.filename),
          pchar(extractfilepath(application.exename) + 'bmp\Product' + extractfilename(self.OpenPictureDialog1.filename)),
          true);
      end;
    end;下面是取:
    procedure TCPGL.BitBtn2Click(Sender: TObject);
    var
      public_image: tpicture;
    begin
      DM.CPGL_ADOQuery.Cancel;
      DM.CPGL_ADOQuery.Prior;
      if (DM.CPGL_ADOQuery.fieldbyname('tp').asstring <> '') and
        FileExists(extractfilepath(application.exename) + DM.CPGL_ADOQuery.fieldbyname('tp').asstring) then
      begin
        public_image := tpicture.create;
        public_image.LoadFromFile(extractfilepath(application.exename) + DM.CPGL_ADOQuery.fieldbyname('tp').asstring);
        fcImager1.Picture.Assign(public_image);
        fcImager2.Picture.Assign(public_image);
        public_image.free;
      end
      else
      begin
        fcImager1.Picture := nil;
      end;
    end;代码较乱,自己整理一下。