diff --git a/components/zeosdbo/src/dbc/ZDbcCache.pas b/components/zeosdbo/src/dbc/ZDbcCache.pas index 8cec2782..38c3cd89 100644 --- a/components/zeosdbo/src/dbc/ZDbcCache.pas +++ b/components/zeosdbo/src/dbc/ZDbcCache.pas @@ -231,6 +231,10 @@ begin FColumnLengths[I] := GetColumnSize(Current); FColumnOffsets[I] := FColumnsSize; Inc(FColumnsSize, FColumnLengths[I] + 1); + // 32768 is the length of a TByteArray. + if FColumnsSize > 32767 then begin + raise Exception.Create('Zeos: Row buffer width exceeded.\nTry using fewer or longer columns in SQL query.'); + end; FHasBlobs := FHasBlobs or (FColumnTypes[I] in [stAsciiStream, stUnicodeStream, stBinaryStream]); end;