_UTF8 prefix for string values does not work with WIN1252 charset
-----------------------------------------------------------------
Key: DNET-933
URL: http://tracker.firebirdsql.org/browse/DNET-933
Project: .NET Data provider
Issue Type: Bug
Components: Entity Framework
Affects Versions: 7.5.0.0
Reporter: Daniel Richter
Assignee: Jiri Cincura
For string values in queries, the generated SQL results in inline values with
the prefix "_UTF8". E.g,
dataContext.Articles.Where(a => a.Name=="Mülltüte")
generates SQL such as
SELECT * FROM "ARTICLE" WHERE "NAME"=_UTF8'Mülltüte'
That works as long as the connection charset is set to "UTF8". In case the
connection string defines a charset such as "WIN1252" the execution throws an
error "Dynamic SQL Error, SQL error code = -104, Malformed string" (when e.g.
the value contains an umlaut).
After removing the "_UTF8" prefix everything works fine (both WIN1252 and UTF8
charset):
SELECT * FROM "ARTICLE" WHERE "NAME"='Mülltüte'
Because of the following code in SqlGenerator.cs, Visit(DbConstantExpression)
// constant is always considered Unicode
isUnicode = true;
The "_UTF8" prefix will always be generated - no matter which charset was used
to connect.
In my opinion it is not possible to use string values in queries with charsets
other than UTF8. The "_UTF8" prefix should only be added in case the database
connection uses UTF8, too.
Otherwise: Is it safe to connect via UTF8 to a database with WIN1252 as charset
for columns or are there any side effects?
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
_______________________________________________
Firebird-net-provider mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/firebird-net-provider