procedure   TForm1.Button1Click(Sender:   TObject); 
const 
    BufSize   =   $F000; 
var 
    Counter,   N:   Integer; 
    Buffer:   PAnsiChar; 
    FieldStrm:   TStream; 
    rmFilestream:Tfilestream; 
begin 
    rmFilestream:=TFileStream.Create( 'd:\2.exe ',fmopenRead); 
    try 
        ADOQuery1.Edit; 
        TBlobField(ADOQuery1.FieldByName( 'c_blob ')).LoadFromStream(rmFilestream); 
        FieldStrm   :=   ADOQuery1.CreateBlobStream(ADOQuery1.FieldByName( 'c_blob '),   bmWrite); 
        GetMem(Buffer,   BufSize); 
        try 
            Counter   :=   rmFilestream.Size;             ProgressBar1.Position   :=   0; 
            ProgressBar1.Max   :=   Counter   div   BufSize;             while   Counter   <>   0   do 
            begin 
                if   Counter   >   BufSize   then 
                    N   :=   BufSize 
                else 
                    N   :=   Counter; 
                rmFilestream.ReadBuffer(Buffer^,   N); 
                FieldStrm.WriteBuffer(Buffer^,   N); 
                Dec(Counter,   N); 
                ProgressBar1.Position   :=   ProgressBar1.Position   +   1; 
                Application.ProcessMessages; 
            end; 
        finally 
            FreeMem(Buffer,   BufSize); 
            FieldStrm.Free; 
        end; 
        ADOQuery1.Post; 
    finally 
        ProgressBar1.Position   :=   ProgressBar1.Max; 
        rmFilestream.Free; 
    end; 
end; 
//---------------------------------------------------
网上看到一个上传文件的例子,rmFilestream.ReadBuffer(Buffer^,   N); 
怎么老是这句出错?提示“stream read error”是怎么回事?