Row buffer width exceeded. Try using fewer or longer columns
Posted: 31.10.2010, 19:42
After finally switching my database to UTF8/Dialect3 i'm getting the SRowBufferWidthExceeded error (obviously since each varchar(200) is now occupying in reality 800 bytes)
This condition seems to have todo with with the TByteArray = array [0..32767] of byte. Why is Zeos using such a limited buffer? Can it be replaced with TBytes or another less limiting type?
Greetings,
Marius
unit ZDbcCache;
....
constructor TZRowAccessor.Create(ColumnsInfo: TObjectList);
......
FColumnDefaultExpressions := Current.DefaultExpression;
Inc(FColumnsSize, FColumnLengths + 1);
// 32768 is the length of a TByteArray. (HeidiSQL patch)
if FColumnsSize > 32767 then
begin
raise EZSQLException.Create(SRowBufferWidthExceeded);
end;
Where SRowBufferWidthExceeded ='Row buffer width exceeded. Try using fewer or longer columns in SQL query.';
This condition seems to have todo with with the TByteArray = array [0..32767] of byte. Why is Zeos using such a limited buffer? Can it be replaced with TBytes or another less limiting type?
Greetings,
Marius
unit ZDbcCache;
....
constructor TZRowAccessor.Create(ColumnsInfo: TObjectList);
......
FColumnDefaultExpressions := Current.DefaultExpression;
Inc(FColumnsSize, FColumnLengths + 1);
// 32768 is the length of a TByteArray. (HeidiSQL patch)
if FColumnsSize > 32767 then
begin
raise EZSQLException.Create(SRowBufferWidthExceeded);
end;
Where SRowBufferWidthExceeded ='Row buffer width exceeded. Try using fewer or longer columns in SQL query.';