On Tuesday 11 October 2016 15:48:15 Tony Whyman via Lazarus wrote: > Please look at changes in TRUNK. > > > May be that not all is perfect, but you will see there direction ... > > > > -Laco. > > Which FPC version is this likely to be released in? > > On a quick review of the code, all seems good. Just one point: > GetDataSize seems to acknowledge CP_UTF8 as the only multibyte character > set. The Firebird character set GB18030 (Chinese characters) is > multi-byte (see wikipedia) and has code page 54936. I believe PostgreSQL > also supports it.
MSEgui uses below code in order to guess the Firebird character size: " SQL_TEXT,SQL_VARYING: begin size:= metadata.getlength(fapi.status,i1); datatype:= ftstring; i2:= metadata.getcharset(fapi.status,i1); if _type = SQL_TEXT then begin fetchfunc:= @fetchtext; if i2 = cs_binary then begin if size = 16 then begin datatype:= ftguid; fetchfunc:= @fetchguid; size:= 0; end else begin datatype:= ftbytes; end; end; end else begin if i2 = cs_binary then begin datatype:= ftvarbytes; fetchfunc:= @fetchvarbytes; end else begin fetchfunc:= @fetchvarchar; end; end; case i2 of 5,6,8,44,56,57,64: begin i3:= 2; end; 3: begin i3:= 3; end; 4,59: begin i3:= 4; end; else begin i3:= 1; end; end; size:= size div i3; end; " From https://gitlab.com/mseide-msegui/mseide-msegui/blob/master/lib/common/db/msefbconnection.pas Martin -- _______________________________________________ Lazarus mailing list Lazarus@lists.lazarus-ide.org http://lists.lazarus-ide.org/listinfo/lazarus