如何在SQL SERVER2000中存储word 文件和图片????
请写出具体的SQL语句。

解决方案 »

  1.   

    http://218.56.11.178:8020/web/index.aspx
    有相关内容 去看看吧
      

  2.   

    可以用IMAGE字段来存放,存放的时候可以用BLOB字段存放内容,在另外的一个字段存放文件名就可以了,用的时候用SHELLEXECUTE来执行不就可以了,
      

  3.   

    可以采用OLE的方法,用下面的流方法将文件存入数据库
            Olecontainer1.DoVerb(ovshow);
            olecontainer1.SaveToFile('Tempdoc.doc'); //存成本地文件,然后以流的形式保存。
            TmpFile := TFileStream.Create('Tempdoc.doc', fmopenread);
            bufsize := TmpFile.size + 1;
            buf := Allocmem(bufsize);
            try
              ImageStream := TAdoBlobStream.Create(FieldByName('wdnr') as TBlobField, bmwrite);
              ImageStream.Seek(0, soFromBeginning);
              TmpFile.Read(buf^, bufsize);
              ImageStream.Write(buf^, bufsize);
            finally
              TmpFile.Free;
              ImageStream.Free;
            end;
            post;
    然后可以用下面的语句取出var
      TmpFile: TFileStream;
      ImageStream: TAdoBlobStream;
      buf: pchar;
      bufsize: integer;
    begin
      try
        ImageStream := TAdoBlobStream.Create(ADO.Fieldbyname('wdnr') as Tblobfield, bmread);
        bufsize := ImageStream.size + 1;
        buf := AllocMem(bufsize);
        TmpFile := TFileStream.Create('Tempdoc.doc', fmcreate);
        TmpFile.position := 0;
        ImageStream.read(buf^, bufsize);
        TmpFile.write(buf^, bufsize - Sizeof(TStreamHeader)); //此处一定要截去ole的文件头描述.
      finally
        Tmpfile.free;
        ImageStream.Free;
      end;
      Olecontainer1.LoadFromFile('Tempdoc.doc');
      Olecontainer1.DoVerb(ovshow);
      if FileExists('Tempdoc.doc') then DeleteFile('Tempdoc.doc');整个过程word显示在olecontainer中,但是存入数据库的内容会很大。