第一次用delphi,要用到SQL server 2000 ,很是不明白,蒙在这里了。这个问题我之前在数据库开板块问过,但是我还没能解决。希望各位能帮帮忙。谢谢啦。
问题:
1. 怎样通过delphi控件button1,将本地磁盘的图像存放数据库 (SQL Server 2000)?
2. 怎样通过delphi控件button2将第一步存入数据库里的部份图像读出,并在控件image1~image9中显示?实现功能:
1.按下button1(caption:找开图库),将本地磁盘D:\图像的所有图像存入SQL Server 2000的数据库(picData)的表(picture)里;Picture表我是这样建的:
CREATE TABLE Picture
(
PicID           CHAR(10),
PicFileName     CHAR(20),
PicMemo         IMAGE,
);2.在第一步骤完成后,.按下button2(开始查找), 将图像库的表picture的图像在image1~image9显示。

解决方案 »

  1.   

    我今天初步实现了第一功能:把开本地磁盘D:\图像的图像并将图像存入SQL Server 2000的数据库,但是一次只能存一个图像,能不能一次可以把D:\图像的文件全部存入数据库的呢?希望各位能帮忙改进?谢谢!
    以后是我写的部份代码:
    一:数据库表建立:
    CREATE TABLE Picturetest
    (
    PicName     CHAR(10)PRIMARY KEY,         
    PicPath     CHAR(40),
    Picture     IMAGE,
    );二:delphi界面上的控件:
    Form1 ,Button1(找开图像),Button2(存入数据据),OpenDialog1,Edit1(图像名:PicName),Image1,DataSource1,DBGrid1,Table1三:数据控件设置:
     1> object DataSource1: TDataSource
        DataSet = Table1
      end 2>object Table1: TTable
        DatabaseName = 'LocalServer'
        TableName = 'dbo.Picturetest'
        end
     3>object DBGrid1: TDBGrid
        DataSource = DataSource1
         end四.代码
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    opendialog1.Execute ;
    image1.Picture.LoadFromFile(opendialog1.FileName);
    edit1.SetFocus;
    end;
    procedure TForm1.Button2Click(Sender: TObject);
    begin
    table1.Open;
    table1.Insert;
    table1.FieldByName('PicName').AsString:=edit1.Text ;
    table1.FieldByName('PicPath').AsString :=opendialog1.FileName ;
    table1.FieldByName('Picture').Assign(image1.Picture);
    table1.Post;
    showmessage('存储成功');
    edit1.Text:='';
    end;
    五:缺点
    一次只能打开一幅图像,每次只能存一幅图像到数据库。六:希望改进后的效果
    一次打开一个图像文件夹,能将其中的所以图像依次存入数据库。希望各位能帮忙。谢谢
      

  2.   

    图像入库功能实现了.以下是我写的一些代码:procedure TForm5.LoadFileToDB(const FilePath: string);
    //存取到数据库中
    var
       PicName, PicPath: string;
       MS: TMemoryStream;
       J1: Tbitmap;
    begin
       MS := TMemoryStream.Create;
       J1 := Tbitmap.Create;
       try {Finally}
          PicName := ExtractFilename(FilePath);
          //获取文件名
          PicPath:= ExtractFileDir(FilePath);
          //文件路径
          if ADOTable1.Locate('PicName;PicPath', VarArrayOf([PicName,PicPath]), [])
             then
            ADOTable1.Edit
                //开始进行插入操作
          else
             begin
              ADOTable1.Append;
                //插入到末尾
              ADOTable1PicName.AsString :=Picname;
                //插入到FileName字段
              ADOTable1PicPath.AsString := PicPath;
                //插入到Folder字段
           end;
             Image1.Picture.LoadFromFile(FilePath);
             J1.Assign(Image1.Picture);
             //加载jpg图片
             J1.SaveToStream(MS);
             //存取到流中
             ADOTable1Picture.LoadFromStream(MS);
             //存取到图片字段
             ADOTable1.Post;
             //提交
     
          MS.Free; //释放资源
          J1.Free;end;
      

  3.   

    是我的Delphi知识少,还是我对Delphi的认识浅,有些东西我怎么消化不了