mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-17 19:49:22 +02:00
fcl-db: base: TBlobField.GetAsString returns uninitialized Result for blob Size=0. Bug #28113
git-svn-id: trunk@30881 -
This commit is contained in:
parent
d5570fb4c4
commit
5c9d5cf896
@ -2813,7 +2813,7 @@ function TBlobField.GetAsString: string;
|
|||||||
var
|
var
|
||||||
Stream : TStream;
|
Stream : TStream;
|
||||||
Len : Integer;
|
Len : Integer;
|
||||||
R : String;
|
S : String;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Stream := GetBlobStream(bmRead);
|
Stream := GetBlobStream(bmRead);
|
||||||
@ -2821,18 +2821,20 @@ begin
|
|||||||
with Stream do
|
with Stream do
|
||||||
try
|
try
|
||||||
Len := Size;
|
Len := Size;
|
||||||
SetLength(R, Len);
|
SetLength(S, Len);
|
||||||
if Len > 0 then
|
if Len > 0 then
|
||||||
begin
|
begin
|
||||||
ReadBuffer(R[1], Len);
|
ReadBuffer(S[1], Len);
|
||||||
if not Transliterate then
|
if not Transliterate then
|
||||||
Result:=R
|
Result := S
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
SetLength(Result,Len);
|
SetLength(Result, Len);
|
||||||
DataSet.Translate(@R[1],@Result[1],False);
|
DataSet.Translate(@S[1],@Result[1],False);
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
Result := '';
|
||||||
finally
|
finally
|
||||||
Free;
|
Free;
|
||||||
end
|
end
|
||||||
@ -2929,7 +2931,7 @@ end;
|
|||||||
procedure TBlobField.SetAsString(const AValue: string);
|
procedure TBlobField.SetAsString(const AValue: string);
|
||||||
var
|
var
|
||||||
Len : Integer;
|
Len : Integer;
|
||||||
R : String;
|
S : String;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
with GetBlobStream(bmWrite) do
|
with GetBlobStream(bmWrite) do
|
||||||
@ -2938,13 +2940,13 @@ begin
|
|||||||
if (Len>0) then
|
if (Len>0) then
|
||||||
begin
|
begin
|
||||||
if Not Transliterate then
|
if Not Transliterate then
|
||||||
R:=AValue
|
S:=AValue
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
SetLength(R,Len);
|
SetLength(S,Len);
|
||||||
Len:=Dataset.Translate(@AValue[1],@R[1],True);
|
Len:=DataSet.Translate(@AValue[1],@S[1],True);
|
||||||
end;
|
end;
|
||||||
WriteBuffer(R[1], Len);
|
WriteBuffer(S[1], Len);
|
||||||
end;
|
end;
|
||||||
finally
|
finally
|
||||||
Free;
|
Free;
|
||||||
|
Loading…
Reference in New Issue
Block a user