Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 7 of 7 total
Thread Could new ANSI/UNICODE merger in 2.16 have had strange consequences?
Tue, Mar 25 2014 6:40 AMPermanent Link

Adam Brett

Orixa Systems

I use ANSI-only data, just for legacy reasons, as my databases started back with DBISAM.

As well as data-tables with content like names + numbers, I have a "configuration settings" database into which I "shovel" data from Delphi. This includes Settings data for DevEx DataLayout controls, which is not saved as a simple Ini-file format, but in a more complex binary format.

Since I have shifted to EDB 2.16 my Data-layout controls no longer load / save correctly from their saved settings.

There are changes to the management of character-sets between EDB 2.14 and 2.16 (which I don't really understand to be honest!) ... could these changes have resulted in this behaviour & if so how might I fix it?
Tue, Mar 25 2014 7:51 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Adam

>I use ANSI-only data, just for legacy reasons, as my databases started back with DBISAM.

Snap, but I just don't need UNICODE (and I'm sticking with D2006 as well).

>As well as data-tables with content like names + numbers, I have a "configuration settings" database into which I "shovel" data from Delphi. This includes Settings data for DevEx DataLayout controls, which is not saved as a simple Ini-file format, but in a more complex binary format.
>
>Since I have shifted to EDB 2.16 my Data-layout controls no longer load / save correctly from their saved settings.

When you say load/save correctly do you mean the data is different or what? If you revert back to 2.14 does the problem go away?

There's also a property in 2.15 and 2.16 to set wether the engine/session is ANSI or UNICODE. Its CharacterSet and it should be csAnsi. Have you got that set correctly?

>There are changes to the management of character-sets between EDB 2.14 and 2.16 (which I don't really understand to be honest!) ... could these changes have resulted in this behaviour & if so how might I fix it?

Without seeing exactly what you're doing its impossible to say but I suspect its possible. I've been told by Tim that there'll be a 2.16b2 out soon to sort a bug I have which is due to converting ANSI to/from UNICODE (it involved Full Text Indexing and a custom WordGenerator).

The big change between 2.14 and 2.15 was that Tim rolled both ANSI and UNICODE into a single piece of code. I'm guessing that internally he's doing what Windows and others do which is convert everything to UNICODE for use and convert back and forth to ANSI at the interface with the world.

Roy
Tue, Mar 25 2014 12:25 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Roy,

<< Without seeing exactly what you're doing its impossible to say but I
suspect its possible. I've been told by Tim that there'll be a 2.16b2 out
soon to sort a bug I have which is due to converting ANSI to/from UNICODE
(it involved Full Text Indexing and a custom WordGenerator). >>

That's for custom word generators *only*.  It has nothing to do with other
parts of the engine, and won't affect anything else.

Tim Young
Elevate Software
www.elevatesoft.com
Tue, Mar 25 2014 12:27 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Adam,

<< As well as data-tables with content like names + numbers, I have a
"configuration settings" database into which I "shovel" data from Delphi.
This includes Settings data for DevEx DataLayout controls, which is not
saved as a simple Ini-file format, but in a more complex binary format.

Since I have shifted to EDB 2.16 my Data-layout controls no longer load /
save correctly from their saved settings. >>

You would have to send me an example before I could comment further.  If the
data is being managed in a binary format, then there's really no way that
the character set would have any effect upon that.  However, if you're
trying to use a CLOB or some other textual column type with binary data
(using pointers, etc.), then it's possible that there could be an issue.

Tim Young
Elevate Software
www.elevatesoft.com
Tue, Mar 25 2014 12:39 PMPermanent Link

Adam Brett

Orixa Systems

Thanks as ever Roy,

>>>>Since I have shifted to EDB 2.16 my Data-layout controls
>>>>no longer load / save correctly from their saved settings.

>>When you say load/save correctly do you mean the data
>>is different or what?

Sorry to be unclear. The datalayouts control the position of controls on a form (i.e. is label1 top=100, left = 50 etc.) Users can edit the layouts and save changed "looks" to the Config Settings DB.

In this DB I just "shovel" the data from the dxLayoutControl as a Stream, I don't do anything clever with it.

>>If you revert back to 2.14 does the problem go away?

** YES **

>>There's also a property in 2.15 and 2.16 to set wether the
>>engine/session is ANSI or UNICODE. Its CharacterSet
>>and it should be csAnsi. Have you got that set correctly?

Yes it is set to csANSI (which is correct for all the data in the tables!)

But the DevEx components must be using some weird character-set, otherwise I have no idea why I would have been able to use it in 2.14 and not in 2.16.

---------

Having seen that the problem does relate to EDB's handling of the data, I will review the say I am saving to stream in my code to see whether that fixes it. If not I'll send Tim a Help request direct.
Tue, Mar 25 2014 2:06 PMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Tim


Sorry, I thought it was more general than that.

Roy Lambert
Wed, Apr 2 2014 5:58 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Adam,

<< Having seen that the problem does relate to EDB's handling of the data, I
will review the say I am saving to stream in my code to see whether that
fixes it. If not I'll send Tim a Help request direct. >>

Any progress on this ?  My guess is that the stream reading/writing is
assuming Unicode strings, or vice-versa, and that the string type used is
not the correct one for EDB CLOB columns.

Tim Young
Elevate Software
www.elevatesoft.com
Image