我在用Tquery查询时,要把结果显示在Tmemo中
数据库的字段长度定义为varchar 500
tt:array[0..600] of char;
query1.GetFieldData(query1.Fields[I],@tt);
memo1.Text :=tt;
可是取出来的字串长度总是最大为255,一百多个汉字左右,
我到数据里查看,那个字段是纪录了500,二百多个汉字左右。
请问这是什么原因,有什么办法解决,
谢谢。
数据库的字段长度定义为varchar 500
tt:array[0..600] of char;
query1.GetFieldData(query1.Fields[I],@tt);
memo1.Text :=tt;
可是取出来的字串长度总是最大为255,一百多个汉字左右,
我到数据里查看,那个字段是纪录了500,二百多个汉字左右。
请问这是什么原因,有什么办法解决,
谢谢。
为何用MEMO呀
用delphi 5, bde511,然后通过tquery取数据库表中的一个varchar(500)字段中的咚咚,用string通过fieldbyname.asstring来获得,也是只有255个字节长度,如何处理?
会报,invalid classtype的错误,
是不是要在Tquery控件中设置什么属性参性才能这样的?
我看流的操作例子里是不用的,
救命啊,
我的Tquery里写了静态的查询语句,还指定了列的别名,
不知有没有关系。
我看一些参考说,
TblobField的那个域必须能edit还必须没有fiter
环境我也是差不多的,
问一下delphi 编译器的设置在那里设定的,?
string为长字串的
要不string最多是只能有255
2884948
交流一下
var
i:integer;
temp:string;
begin
with FDataModule.Query do
begin
Active := False;
RequestLive := True;
SQL.Clear;
SQL.Add('Select * from t_mailtosend where sm_status = 0'); First ;
While not eof do
begin
temp := FieldByName('voice_content').asstring;
temp := inttostr(length(temp)) ; //运行时得到的数据是255 end
end;//while end; //with DataModule2.Query2
end;
惨啊惨,你的朋友就能用这样的方法得到?
我见有的文章说要设定编译器的一个属性为H+
就能自动支持长字串。
要不你的string类就只能得到255的长度
还有,是不是和query控件有什么关系啊,?
我怀疑在数据库里提取的时候就那样了,
可是又很难看到field里的内容哎,
我用datasize看到的这个项
无论我的数据实际是多少,
都是256,
这是什么问题,
能自己在程序里指定吗?
tt:array[0..600] of char;
i :integer;
begin
ADOquery1.GetFieldData(ADOquery1.FieldByName('teachar'),@tt);
memo1.Text :=tt;
end;