插入时只能是字符或整数,如果插入完后再重新edit、post一遍又嫌麻烦,能不能下接插入流类型?ACCESS库

解决方案 »

  1.   

    procedure TAutoForm.Button1Click(Sender: TObject);
    var
        MS_JpegStream1:TMemoryStream;
        M_Jpeg1:TJpegImage;
    begin
        ms_jpegstream1:=tmemorystream.Create;
        m_jpeg1:=tjpegimage.Create;
        m_jpeg1.Assign(image1.Picture);
        m_jpeg1.SaveToStream(ms_jpegstream1);
        with adoquery1 do
        begin
          close;
          sql.Clear;
          sql.Add('update jc_ryjcxx set zp=:sfz1 where xm=:xh1');
          parameters.ParamByName('xh1').Value:='安泽胜';
          parameters.ParamByName('sfz1').LoadFromStream(ms_jpegstream1,ftblob);
          execsql;
        end;
        ms_jpegstream1.Free;
        m_jpeg1.Free;
        ShowMessage('Sucess!'); 
    同样适合INSERT INTO!
      

  2.   

    MS := TMemoryStream.Create;
              TBlobField(frmmain.ADOQuery1.FieldByName('tmzs')).SaveToStream(MS);
              MS.Position := 0;
            adoquery.SQL.Add('insert into tmb (tmbz) values (:data1)');           
            adoquery.parameters.ParamByName('data1').LoadFromStream(MS[temp],ftblob);
            adoquery.ExecSQL;这样老显示字段太小,不能粘贴,BLOB字段的类型会显示字段太小?
      

  3.   

    MS := TMemoryStream.Create;
              TBlobField(frmmain.ADOQuery1.FieldByName('tmzs')).SaveToStream(MS);
              MS.Position := 0;
            adoquery.SQL.Add('insert into tmb (tmbz) values (:data1)');           
            adoquery.parameters.ParamByName('data1').LoadFromStream(MS,ftblob);
            adoquery.ExecSQL;这样老显示字段太小,不能粘贴,BLOB字段的类型会显示字段太小?