TQury如何取大于255的字符串?(SQL 2k)
SQL 2K的数据库中有一字段为varchar(800),用TQuery中FieldByName().AsString
取出来只能取到前255字节,请问如何取得全部数据?
问题点数:100、回复次数:18Top
1 楼huojiehai(海天子)回复于 2003-08-02 22:46:43 得分 0
不可能这么少吧,是不是TQuery的字段列表中限制了Top
2 楼ljmanage(过客)回复于 2003-08-02 22:46:51 得分 20
varchar的最大长度本来就是255,超过255她都当作Text类型的做
你用query的字段和DBMemo来连接,显示出来Top
3 楼ljmanage(过客)回复于 2003-08-02 22:47:48 得分 0
FieldByName().AsString 就是只有255,用TblobField().来做好了Top
4 楼yesxwl(吴宫幽径)回复于 2003-08-02 22:53:07 得分 0
procedure TForm1.Button6Click(Sender: TObject);
var
str:string;
begin
str:=adoquery1.FieldValues['fff'];
showmessage(inttostr(length(str)));
end;
fff为varchar(800)Top
5 楼huojiehai(海天子)回复于 2003-08-02 22:55:29 得分 0
varchar在oracle中能到2000个字符
在Sql serverK上能到4000个字符Top
6 楼dby99(丁白一之反之)回复于 2003-08-03 10:14:56 得分 0
我想用TblobField,但怎样把它与TQuery联系起来?请大虾再指点一下!!!Top
7 楼huojiehai(海天子)回复于 2003-08-03 10:19:40 得分 0
TblobField(query1.fieldbyname(...)).loadfromfile(..);
TblobField(query1.fieldbyname(...)).SaveTofile(..);Top
8 楼dby99(丁白一之反之)回复于 2003-08-03 10:27:28 得分 0
我用TblobField(query1.fieldbyname(...)).AsString取出来还是只有255字节Top
9 楼yesxwl(吴宫幽径)回复于 2003-08-03 12:57:03 得分 0
adoquery1.FieldValues['fff'];
这个方法我已经测试过了Top
10 楼xybh97102(冰点)回复于 2003-08-03 13:15:19 得分 50
哈哈,你的String类型长度最大就是255
如果你的这个字段的长度太大的话,就把他设为Text类型的吧
Top
11 楼xybh97102(冰点)回复于 2003-08-03 13:18:16 得分 0
定义成AnsiString 或者WideString,不过按说默认的就是AnsiString啊Top
12 楼qianguob(不懂编程)回复于 2003-08-03 14:08:13 得分 0
你用的是DEPHI 几啊。
最好是用TEXT类型了。Top
13 楼taothinker()回复于 2003-08-03 16:01:14 得分 30
是BDE中的某个参数需要改动,如用ADO则无此问题!!!Top
14 楼WindowsAPI(风暴)回复于 2003-08-03 16:09:05 得分 0
字段的长度大于255个字符就被Delphi认为是TBlobField字段了,这时不能用AsString赋值,否则截取,应该用TQuery中FieldByName().AsMemo赋值。
Top
15 楼dby99(丁白一之反之)回复于 2003-08-04 10:35:43 得分 0
请问taothinker() ,如何改BDE参数?
感谢各位大虾的支持!!!
我不想用ADO,TQuery中FieldByName().AsMemo这个方法好像没有,编译会报错
能否用GetFieldData或GetBlobFieldData??Top
16 楼hkbarton(→Beginner←)回复于 2003-08-04 10:57:01 得分 0
那么长你不如在数据库里用备注类型Top
17 楼dby99(丁白一之反之)回复于 2003-08-04 11:32:08 得分 0
数据库中用什么类型都可以,关键是TQuery能取出来
Top
18 楼dby99(丁白一之反之)回复于 2003-08-07 19:54:16 得分 0
最后的解决方法:把Varchar(800)改为Text就可以用FieldByName().AsString来读取了,
感谢各位大虾的大力支持Top




