key_public,key_all是两个olevariant变量接收到一个dll传送的两个TVarData类型数值,能用以下方法拿到尺寸和指针;
size:    TVarData(key_all).VArray.bounds[0].ElementCount;
pointer: TVarData(key_all).VArray.Data;如何通过ado存放到sql数据库的image类型字段中呢??
FieldByName('key_all').??????

解决方案 »

  1.   

    使用 TBlobField 实现 具体看帮助吧 手头没有delphi
      

  2.   

    var
      sumstr : string;//sumstr 存放二进值数据
    try
      ....
      st1:=Tstringstream.Create(sumstr);
      adoquery.Append;
      TBlobField(adoquery.FieldByName('image') as TBlobField).LoadFromStream(st1);
      adoquery.Post;
    finally
     freeandnil(st1);
    end;
      

  3.   

    yleiou(Delphi转Java(*^*)) 我用的是ado连接 能用TBlobField 实现吗????
      

  4.   

    谢谢各位 问题已解决 结帐!
    to→ cdsgajxlp(新手) 
    TBlobField(adoquery.FieldByName('image') as TBlobField).LoadFromStream(st1);
    为什么要转两次tblobfield类型呢,一次就可以了吧
      

  5.   

    stm:=TMemoryStream.Create;
             stm.SetSize(TVarData(key_all).VArray.bounds[0].ElementCount);
             stm.Position:=0;
             Move(TVarData(key_all).VArray.Data^, stm.Memory^, TVarData(key_all).VArray.bounds[0].ElementCount);
             (FieldByName('all_key') as TBlobField).LoadFromStream(stm);
             stm.Free;