You are not logged in.
Test : mssql server2012 + syndbZEOS : If fieldname has some Asian languages(Double-byte characters) then error,
but oledb,firedac,sqlite3 is correct .
eg: SQL= select 'changyu畅雨' as 姓名 , the result : [{"濮撳悕":"changyu畅雨"}] , remark: '姓名' = 'name'
The fieldname is wrong, but fieldvalue is correct !
SynDBZEOS.pas line 544
...
for i := 1 to fResultInfo.GetColumnCount do begin
name := (fResultInfo.GetColumnLabel(i)); -----maybe has error?
if name='' then
name := (fResultInfo.GetColumnName(i)); -----maybe has error?
...
But I do not know how to fix it ...
Last edited by 畅雨 (2013-10-25 08:40:27)
Offline
delphi7, zeos: 7.1.2
Offline
We did test only English-based column names, since our ORM and our own code style expect this behavior...
The SynDBZeos unit code uses a plain "name: string" variable, then StringToUTF8() to make the conversion...
Could you step in those lines using the debugger, and check the "name: string" content?
Offline
OK, I try
Offline
SynDBZEOS.pas line 548
...
PSQLDBColumnProperty(fColumn.AddAndMakeUniqueName(StringToUTF8(name)))^.
...
replace as:
PSQLDBColumnProperty(fColumn.AddAndMakeUniqueName(name))^.
remove StringToUTF8 , result is correct !
I guess Coding has been processed by zeos, the returned 'name' is UTF-8 encoded?
Last edited by 畅雨 (2013-10-25 12:30:15)
Offline
I guess this is for non-Unicode Delphi only...
Should be fixed by http://synopse.info/fossil/info/405d06b156
Offline