We again tested the performance of ODAC 10.1.3 when using the euro symbol. The national server coding you use (WE8ISO8859P15) does not match the client encoding (ISO 8859-1). To correctly work with the euro symbol, we tested and are sure of the working capacity of the following methods:
a) use the UseUnicode option: OraSession.Options.UseUniсode: = True
b) kinding
Code: Select all
OraQuery.ParamByName ('...'). AsAnsiString: = '1 €';
c) explicitly specifying a parameter before assigning a value to it:
Code: Select all
OraQuery.ParamByName ('...'). DataType: = ftString;
OraQuery.ParamByName ('...'). AsAnsiString: = '1 €';
d) Using the global ParamStringAsAnsiString variable in the DBAccess.pas module:
You can use any of these methods. We can not affect the behavior of the following code:
Code: Select all
OraQuery.ParamByName ('...'). Value: = '1 €';
Therefore, in this case you need to explicitly convert the assigned value:
Code: Select all
OraQuery.ParamByName ('...'). Value: = AnsiString ('1 €');