odbc: use ftBlob only for VARBINARY(MAX) fields

git-svn-id: trunk@44531 -
This commit is contained in:
ondrej 2020-04-03 11:01:45 +00:00
parent 0c8cf3e323
commit 7cecc87441

View File

@ -999,7 +999,14 @@ begin
SQL_TINYINT: begin FieldType:=ftSmallint; FieldSize:=0; end;
SQL_BIGINT: begin FieldType:=ftLargeint; FieldSize:=0; end;
SQL_BINARY: begin FieldType:=ftBytes; FieldSize:=ColumnSize; end;
SQL_VARBINARY: begin FieldType:=ftBlob; FieldSize:=BLOB_BUF_SIZE; end; // the "SQL Server Native Client 11.0" reports SQL_VARBINARY for binary fields with data size bigger than High(Word), which only ftBlob can handle and not ftVarBytes
SQL_VARBINARY:
begin
FieldSize:=ColumnSize;
if FieldSize=BLOB_BUF_SIZE then // SQL_VARBINARY declared as VARBINARY(MAX) must be ftBlob - variable data size
FieldType:=ftBlob
else
FieldType:=ftVarBytes;
end;
SQL_LONGVARBINARY: begin FieldType:=ftBlob; FieldSize:=BLOB_BUF_SIZE; end; // is a blob
SQL_TYPE_DATE: begin FieldType:=ftDate; FieldSize:=0; end;
SQL_SS_TIME2,