Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 5 of 5 total
Thread ANSI to UNICODE conversion
Thu, Jul 2 2020 2:21 AMPermanent Link

gripsware

gripsware datentechnik gmbh

Hi,

we are in process of changeover and need to transfer the old ANSI data to the new UNICODE databases.

First I thought it could be easy by connecting the old DB in an ANSI session and the new DB in an UNICODE session.
But there is still a problem with the TEDBEngine, which also has a characterset defined.

How is it possible to connect both types of characterset in the same application?

Thanks
Thu, Jul 2 2020 2:30 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

gripsware


EDBManager allows me to have both ansi and unicode sessions at the same time. Looking at the pdf manual leads me to believe that the engine property is primarily for use as a default. Try just setting up two sessions - 1 unicode and 1 ansi.

If there is a problem let us know what the error is.

Roy Lambert
Thu, Jul 2 2020 3:32 AMPermanent Link

gripsware

gripsware datentechnik gmbh

Hi Roy,

we need this as a part of our application. A importer which exports the old data and imports into the new database.
So let it get a bit more precise.

abstract code:
// ...
// new DB

aSesUNI := TEDBSession.Create(nil);
aSesUNI.SessionName := 'newdata';
aSesUNI.CharacterSet := csUnicode;
aSesUNI.LocalConfigPath := <newpath>;
aSesUNI.LoginUser := c_AdminLoginUser;
aSesUNI.LoginPassword := c_AdminLoginPassword;

aDBUNI  := TEDBDatabaseExt.Create(nil);
aDBUNI.SessionName := aSesUNI.SessionName;
aDBUNI.DatabaseName := 'pmd';
aDBUNI.Database := 'pmd';

aTableUNI := TEDBTable.Create(nil);
aTableUNI.SessionName := aSesUNI.SessionName;
aTableUNI.DatabaseName := aDBUNI.DatabaseName;

// ...
// old DB

aSesANSI  := TEDBSession.Create(nil);
aSesANSI.CopySettings(aSesUNI);
aSesANSI.AutoSessionName := false;
aSesANSI.SessionName := 'import';
aSesANSI.CharacterSet := csAnsi;  // !!! ANSI
aSesANSI.LocalConfigPath := <oldpath>;
aSesANSI.LoginUser := c_AdminLoginUser;
aSesANSI.LoginPassword := c_AdminLoginPassword;
if aSesANSI.DatabaseExist('olddata') then
 aSesANSI.DropDatabase('olddata', true);
aSesANSI.CreateDatabase('olddata', IncludeTrailingPathDelimiter(ExtractFilePath(<oldpath>))+'Data\', '', False);

aDBANSI  := TEDBDatabaseExt.Create(nil);
aDBANSI.SessionName := aSesANSI.SessionName;
aDBANSI.DatabaseName := 'olddata';
aDBANSI.Database := 'olddata';

aTableANSI := TEDBTable.Create(nil);
aTableANSI.SessionName := aSesANSI.SessionName;
aTableANSI.DatabaseName := aDBANSI.DatabaseName;

// ..
// .. Connect

aSesUNI.Open;
aDBUNI.Open;

aSesANSI.Open;
aDBANSI.Open;   <<< CRASH - Exception-Klasse EEDBException mit Meldung 'ElevateDB Error #100 There is an error in the metadata for the catalog olddata (The character set does not match the character set in use by the engine)'

...
There is a global TEDBEngine defined with a ConfiPath = <newpath>
In EDBManager I can see that a database 'olddata' is created in the session of aSesUNI.

  
Thu, Jul 2 2020 8:44 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

gripsware


Just had a hunt through the forums - this is the first post on the thread but its worth reading through.

----------------------------------------------------------------------------------------------------------------------------------------------
Path: news.elevatesoft.com
Message-ID: <93C6043B-82E0-4CD9-9E40-DE4ADBFEB078@news.elevatesoft.com>
Reply-To: "Tim Young [Elevate Software]" <timyoung@elevatesoft.com>
From: "Tim Young [Elevate Software]" <timyoung@elevatesoft.com>
Newsgroups: elevatesoft.public.elevatedb.general
Subject: ElevateDB 2.15 Now Available
Date: Fri, 3 Jan 2014 11:28:14 -0500
Lines: 1
Organization: Elevate Software
MIME-Version: 1.0
Content-Type: text/plain;
   format=flowed;
   charset="iso-8859-1";
   reply-type=original
Content-Transfer-Encoding: 7bit
X-Priority: 3
X-MSMail-Priority: Normal
Importance: Normal
X-Newsreader: Microsoft Windows Live Mail 14.0.8117.416
X-MimeOLE: Produced By Microsoft MimeOLE V14.0.8117.416


ElevateDB 2.15 is now available for download.

This release includes a major change to all ElevateDB products: the ability
to mix ANSI and Unicode sessions in the same executable or library. This
includes the ElevateDB Manager, the ElevateDB Server (32-bit and 64-bit),
the ElevateDB PHP Extension, the ElevateDB ODBC Driver (32-bit and 64-bit),
and the ElevateDB .NET Data Provider.

Due to the fact that prior releases often separated the ElevateDB Manager,
ElevateDB Server, and ElevateDB ODBC Driver settings by the type of
executable, this change requires that you run a fix utility called
"edbfixunicode.exe" in order to modify these settings so that the ANSI and
Unicode settings are combined into one location. For more information on
this fix utility and its usage, please review the release notes included
with every product.

If you need help with the fix utility or just have questions about how it
works, please feel free to post your questions here.

Tim Young
Elevate Software
www.elevatesoft.com
------------------------------------------------------------------------------------------------------------------------------------------------------


The other question was have you set UseLocalSessionEngineSettings to TRUE?

Roy Lambert
Thu, Jul 2 2020 9:44 AMPermanent Link

gripsware

gripsware datentechnik gmbh

Roy Lambert wrote:

The other question was have you set UseLocalSessionEngineSettings to TRUE?

Roy Lambert


I've never seen this last 'hidden' property Smile
Seems to work right now.

Thank you Roy
Image