vStream.ReadBuffer(m_YCYX[vCount].Data,sizeof(m_YCYX[vCount].Data));
出错!

解决方案 »

  1.   

    没有!m_ycyx的空间是4160,而我所取的确不能大于1248
      

  2.   

    那不可能.
    你再仔细查一下vStream,m_YCYX,,Data的值.这里面应该有一个有问题 .
    我看不到你的原码,无法跟踪调试.
      

  3.   

    vStream:=TMEMORYSTREAM.Create;
    TBlobField(vTable.FieldByName(cRunDataFieldName)).SaveTostream(vstream);
    vStream.Position:=0;
    vStream.ReadBuffer(m_YCYX[vCount].Data,sizeof(m_YCYX[vCount].Data));
    就这么简单。
      

  4.   

    你查看一下vStream.Size属性是多少.最看一下sizeof(m_YCYX[vCount].Data)*vCount的值是多少.到1247,1248的时候再查.vStream.Size和sizeof(m_YCYX[vCount].Data)*vCount哪个大???
      

  5.   

    m_YCYX是个数组,vcount 只是数组的下标,每次只去一个啊!不需要相乘啊!
      

  6.   

    我的意思是要你测试一下,
    看vStream中的数据够不够你读!!!!!!!!!!!如果vStream中的数据都读完了,就会报错,
    你测试一下,看流中到底有多少数据!!!!!说不定,cRunDataFieldName中的值没有保存那么长的数据呢??????
      

  7.   

    m_YCYX[vCount].Data中的DATA的数据类型是什么?string? Integer? BOOLEAN?PCHAR?sizeof(m_YCYX[vCount].Data)是的值是多少??