现在有一个MSSQL的表单的一个字段是varchar(8000)型的。
但是利用delphi5提供的TQuary来查询取值的时候
FieldByName('PValue').AsString 它的值总是在255的地方截断了。
在数据库中是可以存贮超过255字节的内容的。
请教高手如何读取和写入超过255字节的string?
书上说“TStringField:字符串字段,最大字节数8192,包括NULL字符”。
但是利用delphi5提供的TQuary来查询取值的时候
FieldByName('PValue').AsString 它的值总是在255的地方截断了。
在数据库中是可以存贮超过255字节的内容的。
请教高手如何读取和写入超过255字节的string?
书上说“TStringField:字符串字段,最大字节数8192,包括NULL字符”。
解决方案 »
- 已有成熟开发框架,寻求软件系统合作开发
- fastreport3变量问题--在线等
- 如何將一個字符串定義成一個全局變量?
- com服务器拒绝访问???
- 做过东进语音卡编程的请进!
- 终于离开了,心情高兴,爽!放分
- 请教winexecandwait32(filename,***);中的***有多少中,用法分别是?
- 怎样在程序运行时改变动态生成的控件大小
- delphi制作的报表出问题了,只能打印第一页,后面几页的变成黑屏!!
- 菜鸟问各位大侠:如何将几个声音文件并成一个文件?救救我!!!
- 如何固定stringgrid的任意一行?
- showmessage(IntToStr(pos(resStr,tmpStr)))这句话是什么意思?能详细解释一下吗?
var
S:AnsiString;
begin
S:=Query1.FieldByName('PValue').AsString ;
ShowMessage(S);
end;
FieldByName('PValue').Value 也还是255。
我不知道是要在Delphi中设置来解决
还是MSSQL需要调整?
我使用的XP+MSSQL7.0+Delphi5.0开发环境。
我已经试过利用ansistring读取,但是问题照旧。
因为再Delphi可以很容易的给一个string赋超过255字节的值的。
看来不是Delphi不能处理。
那问题到底出在什么difang
var
S:AnsiString;
begin
S:=TWideString(Query1.FieldByName('PValue')).AsString;
ShowMessage(S);
end;
试试!告诉我结果
根本通不过,因为TWideString没有定义。
改写为
s:=WideString(FieldByName('PValue').AsString);
不出来还是只有255个字节。看来问题不是是出来有什么样的变量去接受字段的值,而是字段本身的值就是
已经限制在255字节了。烈焰老兄是不是很失望呀。我更是呀。
delphi6
测试方法:
var s: string;
begin
s:=ADOTable1.Fields.Fields[0].AsString;
caption:=inttostr(length(s));
end;
看来只好使用text字段了。
使用delphi6还要再装。我也不熟。