Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 3 of 3 total
Thread ElevateDB 2.15 External Module - ANSI or Unicode?
Tue, Jan 14 2014 11:41 AMPermanent Link

Ulrich Doewich

I just upgraded to 2.15 (build 2), and am looking at required changes
due to the introduction of the CharacterSet property.

My database server is running with csUnicode (I used to use the Unicode
editions of ElevateDB with my Delphi 2010).

The question now is what should the external module be defined as... I
saw in the external module template that there is now a new define for this:

{$DEFINE EDB_UNICODE}

However, if I set this, I get the following error:

ElevateDB Error #202 An error occurred with the module RCServer_EM (The
module is not compiled to use the ANSI character set)

Are there any other changes required to make it use Unicode?


As an aside, I also noticed the the ElevateDB Manager does not show the
Collation correctly (i.e. the selection is blank) for my database
columns or procedure parameters... I do have them defined as COLLATE
UNI, or COLLATE "UNI_CI" during table/procedure creation.

Could the above be related to this?


Thanks and Best Regards,
Ulrich
Wed, Jan 15 2014 1:14 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Ulrich,

<< The question now is what should the external module be defined as... I
saw in the external module template that there is now a new define for this:

{$DEFINE EDB_UNICODE}

However, if I set this, I get the following error:

ElevateDB Error #202 An error occurred with the module RCServer_EM (The
mdule is not compiled to use the ANSI character set)

Are there any other changes required to make it use Unicode? >>

That error means that the ElevateDB Server is running as an *ANSI* server,
which is not what you want.  Check the server configuration and make sure
that the character set for the server is set to Unicode.  You can do this
via the user interface, or via this edbsrvr.ini value:

Character Set=1

1=Unicode, 0=ANSI

<< As an aside, I also noticed the the ElevateDB Manager does not show the
Collation correctly (i.e. the selection is blank) for my database columns or
procedure parameters... I do have them defined as COLLATE UNI, or COLLATE
"UNI_CI" during table/procedure creation. >>

This is a bug, and I'll be releasing a B3 by tomorrow to fix this.

Tim Young
Elevate Software
www.elevatesoft.com
Wed, Jan 15 2014 4:32 PMPermanent Link

Ulrich Doewich

On 15/01/2014 1:14 PM, Tim Young [Elevate Software] wrote:
> That error means that the ElevateDB Server is running as an *ANSI*
> server, which is not what you want.  Check the server configuration and
> make sure that the character set for the server is set to Unicode.  You
> can do this via the user interface, or via this edbsrvr.ini value:
>
> Character Set=1
>
> 1=Unicode, 0=ANSI

I'm pretty sure it's running in Unicode mode, as 1) I have set
CharacterSet to csUnicode for both the Engine and Session components,
and 2) the ElevateDB Manager is also set to Unicode for the session I
use to query my database...

Is there another way to see what mode it is running in?

If I use "View Installed Modules..." in the Manager, it shows me that
the RCServer_EM module is registered with an ANSI Character set.  Where
does this information come from?  In my server startup code I have this
piece of code:

SQL.Text := 'SELECT * FROM Modules WHERE Name=' +
EDBEngine1.QuotedSQLStr('RCServer_EM');
Open; // check if the external module has already been registered
if RecordCount = 0 then begin
  SQL.Text := 'CREATE MODULE "RCServer_EM" PATH ' +
EDBEngine1.QuotedSQLStr(EDBEngine1.ConfigPath + '\RCServer_EM.dll');
  ExecSQL;
end

Does it get it the Character set from the module itself?


> << As an aside, I also noticed the the ElevateDB Manager does not show
> the Collation correctly (i.e. the selection is blank) for my database
> columns or procedure parameters... I do have them defined as COLLATE
> UNI, or COLLATE "UNI_CI" during table/procedure creation. >>
>
> This is a bug, and I'll be releasing a B3 by tomorrow to fix this.

Ok, thanks.


Best Regards,
Ulrich
Image