mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-10 19:26:09 +02:00
fcl-db: mysql: when checking for max. field buffer size take into account also CharSize. Bug#31445
git-svn-id: trunk@35544 -
This commit is contained in:
parent
5dd6232c0e
commit
94b8beb3c2
@ -1042,9 +1042,6 @@ begin
|
||||
exit;
|
||||
SetString(Src, Source, Len);
|
||||
|
||||
if Len > FieldDef.Size then
|
||||
Len := FieldDef.Size;
|
||||
|
||||
case FieldDef.DataType of
|
||||
ftSmallint:
|
||||
begin
|
||||
@ -1072,10 +1069,10 @@ begin
|
||||
end
|
||||
else
|
||||
{$ENDIF}
|
||||
if Src <> '' then
|
||||
VL := StrToInt64(Src)
|
||||
else
|
||||
VL := 0;
|
||||
if Src <> '' then
|
||||
VL := StrToInt64(Src)
|
||||
else
|
||||
VL := 0;
|
||||
Move(VL, Dest^, SizeOf(LargeInt));
|
||||
end;
|
||||
ftFloat:
|
||||
@ -1127,16 +1124,21 @@ begin
|
||||
// String-fields which can contain more then dsMaxStringSize characters
|
||||
// are mapped to ftBlob fields, while their mysql-datatype is FIELD_TYPE_BLOB
|
||||
begin
|
||||
if Len > FieldDef.Size*FieldDef.CharSize then Len := FieldDef.Size*FieldDef.CharSize;
|
||||
Move(Source^, Dest^, Len);
|
||||
(Dest+Len)^ := #0;
|
||||
end;
|
||||
ftVarBytes:
|
||||
begin
|
||||
if Len > FieldDef.Size then Len := FieldDef.Size;
|
||||
PWord(Dest)^ := Len;
|
||||
Move(Source^, (Dest+sizeof(Word))^, Len);
|
||||
end;
|
||||
ftBytes:
|
||||
begin
|
||||
if Len > FieldDef.Size then Len := FieldDef.Size;
|
||||
Move(Source^, Dest^, Len);
|
||||
end;
|
||||
ftBlob, ftMemo:
|
||||
CreateBlob := True;
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user