2

I have a web service written in C# 5.0 (.NET 4.5) that writes data into an AS/400 database using ODBC. Some of the fields are Hebrew strings. When running it using IIS Express, it works fine; but when using IIS 7.5 or 8.5, the Hebrew fields are written backward. I'm using Visual Studio 2013. Is there a configuration that I'm missing?

John Y
  • 14,123
  • 2
  • 48
  • 72
Dror T
  • 221
  • 2
  • 9

2 Answers2

1

My comment to an answer composed by @Dror T may overlook an additional layout transformation that could occur, above and beyond simply having the effect of CCSID translation applied; i.e. a bidirectional feature requested of the client may be what is ¿required? additionally, just as implied.? When I typed that comment, I was thinking that the layout transformation was something to be done at the client for presentation purposes, and this topic is about writing data into the database.

Unsure though, why that would not be a feature available on a connection string? Seems no mention anywhere in IBM i 7.1->Connecting to your system->IBM i Access->IBM i Access for Windows->Programming->IBM i Access for Windows: Database programming->IBM i Access ODBC->Implementation issues of ODBC APIs->Connection string keywords nor drilled-down specifically to the Connection string keywords - Conversion properties, with regard to the alluded bidirectional feature setting/attribute.

Note: The OP refers to IBM i Client Access, so that is why those docs are referenced above; besides, I have not yet stored any links to newer IBM i Access Client Solutions (iACS) docs, nor did I quickly find a link to connection string details corresponding to those above. Although a quick look did find a possible high-level link for one of two application packages available for each of Windows and Linux IBM i Access Client Solutions: Application Packages

Here I am adding a link to another topic, though that topic similarly does not explain specifically/explicitly [e.g. drill-down or connection-string or by some other configuration setting] how a user would "turn on bidirectional language support", as if somehow that would just be implicitly understood; that topic was instead, about reading data from the IBM i database files, rather than writing data, but similarly calls out backward text in BiDi language support: Hebrew text data from AS400 shown backwards When downloading data using SSIS

Community
  • 1
  • 1
CRPence
  • 1,259
  • 7
  • 12
0

Figured it out. The Client Access ODBC driver has a "bidirectional" feature that you can check in order to reverse right-to-left languages. This feature has a bug and works only for the user who checked it. There is a need to write a procedure that does this conversion.

John Y
  • 14,123
  • 2
  • 48
  • 72
Dror T
  • 221
  • 2
  • 9
  • Seems to me, that *feature* might just be an *override*, as applied to character data stored as *binary* vs properly-tagged with a BIDI CCSID; i.e. perhaps a sibling to the *override* of "force translation", which basically is a *trick* to be used only when the database TABLE columns are incorrectly tagged as CCSID(\*HEX)? Indeed such an *override* would apply only to the user who has checked that option, because [and I would expect that] the **standard behavior** should be to translate the data between the client and the server, as a process for which the direction of the data is maintained. – CRPence Oct 10 '16 at 14:31