Beste tweakers,
Ik denk dat we een bug hebben gevonden in de .NET Oracle provider ( System.Data.OracleClient ). Wanneer wij een update of insert statement proberen uit te voeren naar een willekeurig veld met een karakter als "ë, è, ô, Ñ, etc", dan wordt in plaats van dit karakter een tweetal bagger- karakters weggeschreven.
Hier een stukje voorbeeld code:
De waarde "Mijn problëëm." kan nu niet goed worden weggeschreven. De enige work- around die we tot noch toe hebben gevonden is deze:
Maar als dit de enige oplossing is zou dat betekenen dat ik alle parameters moet gaan vervangen uit een gigantische lap code. Ik hoop dus dat er iemand is die meer ervaring heeft met dit probleem + een mogelijke oplossing.
Ik denk dat we een bug hebben gevonden in de .NET Oracle provider ( System.Data.OracleClient ). Wanneer wij een update of insert statement proberen uit te voeren naar een willekeurig veld met een karakter als "ë, è, ô, Ñ, etc", dan wordt in plaats van dit karakter een tweetal bagger- karakters weggeschreven.
Hier een stukje voorbeeld code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| System.Data.OracleClient.OracleConnection myConnection =
new System.Data.OracleClient.OracleConnection
("de connectionstring");
System.Data.OracleClient.OracleCommand myCommand =
myConnection.CreateCommand();
myCommand.CommandText =
"Update tablename set fieldname = " +
":myValue where id= :myID";
myCommand.Parameters.Add(":myValue", System.Data.OracleClient.OracleType.VarChar,50);
myCommand.Parameters.Add(":myID", System.Data.OracleClient.OracleType.Number);
myCommand.Parameters[":myValue"].Value = "Mijn problëëm.";
myCommand.Parameters[":myID"].Value = 10;
myCommand.ExecuteNonQuery(); |
De waarde "Mijn problëëm." kan nu niet goed worden weggeschreven. De enige work- around die we tot noch toe hebben gevonden is deze:
code:
1
2
3
4
5
6
7
8
9
10
| System.Data.OracleClient.OracleConnection myConnection =
new System.Data.OracleClient.OracleConnection(
"de connectionstring");
System.Data.OracleClient.OracleCommand myCommand =
myConnection.CreateCommand();
myCommand.CommandText = "Update tablename set fieldname = 'Mijn problëëm.' where id= 10";
myCommand.ExecuteNonQuery(); |
Maar als dit de enige oplossing is zou dat betekenen dat ik alle parameters moet gaan vervangen uit een gigantische lap code. Ik hoop dus dat er iemand is die meer ervaring heeft met dit probleem + een mogelijke oplossing.