SQL 2K的数据库中有一字段为varchar(800),用TQuery中FieldByName().AsString
取出来只能取到前255字节,请问如何取得全部数据?

解决方案 »

  1.   

    不可能这么少吧,是不是TQuery的字段列表中限制了
      

  2.   

    varchar的最大长度本来就是255,超过255她都当作Text类型的做
    你用query的字段和DBMemo来连接,显示出来
      

  3.   

    FieldByName().AsString  就是只有255,用TblobField().来做好了
      

  4.   

    procedure TForm1.Button6Click(Sender: TObject);
    var
    str:string;
    begin str:=adoquery1.FieldValues['fff'];
     showmessage(inttostr(length(str)));
     
    end;fff为varchar(800)
      

  5.   

    varchar在oracle中能到2000个字符
    在Sql serverK上能到4000个字符
      

  6.   

    我想用TblobField,但怎样把它与TQuery联系起来?请大虾再指点一下!!!
      

  7.   

    TblobField(query1.fieldbyname(...)).loadfromfile(..);
    TblobField(query1.fieldbyname(...)).SaveTofile(..);
      

  8.   

    我用TblobField(query1.fieldbyname(...)).AsString取出来还是只有255字节
      

  9.   

    adoquery1.FieldValues['fff'];
    这个方法我已经测试过了
      

  10.   

    哈哈,你的String类型长度最大就是255
    如果你的这个字段的长度太大的话,就把他设为Text类型的吧
      

  11.   

    定义成AnsiString 或者WideString,不过按说默认的就是AnsiString啊
      

  12.   

    你用的是DEPHI 几啊。最好是用TEXT类型了。
      

  13.   

    是BDE中的某个参数需要改动,如用ADO则无此问题!!!
      

  14.   

    字段的长度大于255个字符就被Delphi认为是TBlobField字段了,这时不能用AsString赋值,否则截取,应该用TQuery中FieldByName().AsMemo赋值。
      

  15.   

    请问taothinker() ,如何改BDE参数?
    感谢各位大虾的支持!!!
    我不想用ADO,TQuery中FieldByName().AsMemo这个方法好像没有,编译会报错
    能否用GetFieldData或GetBlobFieldData??
      

  16.   

    数据库中用什么类型都可以,关键是TQuery能取出来
      

  17.   

    最后的解决方法:把Varchar(800)改为Text就可以用FieldByName().AsString来读取了,
    感谢各位大虾的大力支持