我用的是sql server2000,定义有字段学号(关键字),………………,照片(varchar(100)),以下部分代码:
procedure TfrmStuInfoMng.Label10Click(Sender: TObject);
begin
  if  OpenPictureDialog1.Execute then
  begin
    Image2.Picture.LoadFromFile(OpenPictureDialog1.FileName);
  end;
end;
var
  strPicPath:String;
procedure TfrmStuInfoMng.Label11Click(Sender: TObject);begin
  strPicPath := ExtractFilePath(Application.ExeName) + '\Images\' +DBEdit1.Text+ '.jpg';
  Image2.Picture.SaveToFile(strPicPath);
  Application.MessageBox('保存成功!','照片保存',MB_OK+MB_ICONASTERISK);
end;其中第一个过程是实现上传照片功能的,第二个过程是实现按学号保存照片的功能的,保存路径就在我的.exe可执行文件下我所见的Images文件夹下,并命名为关键字学号。因为我在数据库存的是varchar类型的字段,所以当我打开我所做的窗口时,并没有显示我保存的照片,本想用以下代码实现:procedure TfrmStuInfoMng.ADOQuery1AfterScroll(DataSet: TDataSet);
begin
  Image2.Picture.LoadFromFile(strPicPath);
end;可是动不了!!,即便我把strpicpath定义为全局变量也不可用,我想问的是我写的过程TfrmStuInfoMng.ADOQuery1AfterScroll(DataSet:TDataSet);是不是错了 ,正确的格式是怎么样的!!?
(顺便插播一下,我建的另一个表里面有edit,checkbox控件,全都不可以选择了?!为什么啊!其中控件的enabale时间全为true!!谁可以告诉我啊!!)
重点解决第一个问题!!哪位好心的最好帮我也解决第二个问题啊啊!!在下在此谢过啦!!

解决方案 »

  1.   

    照片(varchar(100))
    数据库中只保存相对图片文件的相对路径?那就没有什么特别之处了,路径就是字符串而已
    还有一种通行做法是把图片文件以二进制形式放在数据库BLOB类型的字段中,具体操作请搜以前帖子
      

  2.   

    直接保存图像到数据库不是更好吗?显示用DBIMAGE控件
      

  3.   

    试试:
    procedure TfrmStuInfoMng.ADOQuery1AfterScroll(DataSet: TDataSet);
    var
      mystrPicPath : string;
    begin
      mystrPicPath:=ExtractFilePath(Application.ExeName) + '\Images\' +ADOQuery1.FieldByName('你的学号字段名').AsString+ '.jpg';
      Image2.Picture.LoadFromFile(mystrPicPath);
    end;