数据库表中有个字段re varchar(1000)
在delphi中,用TTable或TQuery取此字段的值只能取255个字符长
因为是通过 FieldByName('re').Asstring取值的,我知道AnsiString可以更长
所以用TQuery对此字段进行Update时没什么问题。
但怎么才能完全显示这个字段的值呢?
在delphi中,用TTable或TQuery取此字段的值只能取255个字符长
因为是通过 FieldByName('re').Asstring取值的,我知道AnsiString可以更长
所以用TQuery对此字段进行Update时没什么问题。
但怎么才能完全显示这个字段的值呢?
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
我加上{$H+}或{$H-}都没什么反应开始我是用DBMEmo,后来改成TMemo也一样,数据库中可以超过255,但取过来只能是255
var
S: AnsiString;
begin
...
S:= FieldByName('re').asstring;
//S:= FieldByName('re').Value; //也不行
...
end;
x:TBlobStream;
z:TStringStream;
begin
with ADOQuery do
begin
Close;
Sql.Clear;
Sql.Add('select cast(Re as text) as Re from TableName ');
Open;
if not IsEmpty then
begin
x:=TBlobStream.Create(TBlobField(FieldByName('Re')),bmRead);
z:=TStringStream.Create('');
z.CopyFrom(x,x.Size);
RichEdit1.Lines.Clear;
RichEdit1.Lines.SetText(PChar(z.DataString));
x.free;
z.Free;
end;
end;
end;
主要是用' cast(Re as text) as Re '就行了