D6
初始5个Field查表active时AddAll添加,手动添加Field,fkData型,长度20
查询前5字段,Open时提示新添加的字段不存在,查看字段属性Required为False
查询前5字段,' ' as Field ,单空格占位,Open,无报错
FieldByName修改时,FieldByName('Field').asString := '11111'
报错前5字段中有字段无值,DeBugView中看到'11111'赋值给Field段时挤掉了前5字段中的一个现在迷茫中,这个控件的内存分配是怎么整的?字段长度无用?
现在怀疑其继承数据库查询字段属性要比设置的字段属性优先级高,覆盖掉了求解决方法,急用

解决方案 »

  1.   

    ' ' as Field 是你查询语句执行的时候生成的,而你手动添加Field,fkData型这样就不对了,因为这个不是你数据集实际的字段,只能作为计算字段类型,或者内部计算字段。也就是说Field的类型不能是fkData。
    如果说你数据集本身就有Field字段的话,你查询是不能' ' as Field 这样,你可以在Field字段的OnGetText事件中Text:='';
      

  2.   

    不是bug,是你的寫法有問題field是實際數據集的字段名,你可以直接用sql語句去處理你想要的結果,亦可在ado字段的ongetText事處理實際的text值為空\null\''.........
      

  3.   


    添加计算段无法添加数据……
    FieldByName('Field').AsString := '11111'无效,DeBug时Watches里面可以看见字段被添加了值,但是Post之后变成了空。
    现在暂时的解决方法是用数据库里结构类似的字段进行了初始化
    例如 select F1,F2,F3,F2 as Field from table
    用F2段的结构初始化Field段,然后遍历Cds将所有的Field段再次初始化
      

  4.   


    Field不是实际表里的字段,是另外拿出来显示/处理的
    本来的Sql是类似: Select F1,F2,F3 From table
    但是提示Field段未知
    于是改成Select F1,F2,F3,' ' as Field From table
    然后神奇的Cds从' ' as Field 继承了字段属性,把我设置的长度什么的全抛弃了……
      

  5.   

    知道不是BUG就行了,计算字段当然是无法修改源数据里字段的,修改值用一查询来做呀,改完再重查你的数据集,这样查询修改互不干扰