我在用Tquery查询时,要把结果显示在Tmemo中
数据库的字段长度定义为varchar 500
tt:array[0..600] of char;
 
  query1.GetFieldData(query1.Fields[I],@tt);
  memo1.Text :=tt;
可是取出来的字串长度总是最大为255,一百多个汉字左右,
我到数据里查看,那个字段是纪录了500,二百多个汉字左右。
请问这是什么原因,有什么办法解决,
我试过了好多方法,可是field.datasize的长度总是256.

解决方案 »

  1.   

    把char数组改成string类型(因为char..........明白?)
      

  2.   

    我用memo1.Text:= query1.Fields[I].asstring;
    取出来的还是256
    55有没有那位高手遇到这样的问题啊救命啊,:)
      

  3.   

    memo1.Text:= query1.Fields[I].value;
    我就是这样用的长度为800没问题
      

  4.   

    to:idilent
    字段类型是指我在数据库里定义的类型吗?
      

  5.   

    to:upingking()
    哎,我刚试过了一样是没有用啊,:)
    我不知是不是和环境有关,
    因为我上次的帖子,上面的朋友也说用asstring能取出来的,
      

  6.   

    你看看length(query1.Fields[I].asstring)就知道了
    可能是数据库的问题
      

  7.   

    是否你的编译器的String类型改了最小模式,最小模式的String=255.
      

  8.   

    to:jinvqing
    我取得的field的长度是256
    不是的我看编译器我是选取了huge string的
      

  9.   

    问题应该是和string没有关系的,
    我定义了一个tt:string
    然后对tt传500个字串的值,可以跟踪看到,
    TQuery里有没有什么属性对这个有影响的?
    我清楚的描述全个过程吧
    我用Tquery进行多表,query1.sql.add(‘select  "域名1"=table1.field1 .....where ..order by ..’);//在这里多表连接并指定了列名
    query1.open//
    datasource1设定了query1为dataset
    在事件DataSource1DataChange中
     for I:= 0 to query1.FieldCount-1 do
     begin
        (pagecontrol2.Pages[0].controls[m+i] as Tmemo).Text:=query1.Fields[i].Value;
     end;
    取出的数据总是不能大于255