Subject Rephrased Question: [IBO] Migrating to Firebird - how about Unicode?
Author Jacob Havkrog
Hi - I already asked this question once, but I'd like to rephrase it, as I'm a bit wiser now.

I'm migrating my application and database from BDE/Paradox to IBO/Firebird. I use Delphi 2007.

Jason recommends me to create the Firebird database and tables with UTF8 charset to ease a future upgrade to Delphi XE and full Unicode support.

But when I do that, string fields appear as TWideStringField and blob fields TWideMemoField when I connect to the database using TIBOTable.

That breaks my code because those fields are declared as TStringField and TMemoField.

So now I don't really know if I should push forward and change all TStringField and TMemoField to Wide. I fear that I'll be forced into a lot of trouble that I could avoid.

The other option is to use NONE as character set when creating the database. I guess that would give me problems if I want to change that to UTF8 later. Then I'd have to recreate all string and memo columns and copy data over, right?

I don't need Unicode support now but it would be nice to have later, when I'm ready to convert to Delphi XE+.

Thanks for any help on which way to go...
Jacob


Fra: IBObjects@yahoogroups.com [mailto:IBObjects@yahoogroups.com] På vegne af Support List
Sendt: 13. juli 2011 21:25
Til: IBObjects@yahoogroups.com
Emne: RE: [IBO] Migrating to Firebird - how about Unicode?



Jacob,

> Hi - I'm migrating a Delphi 2007 application from Paradox/BDE to
> Firebird/IBO.

Excellent!

> My thinking is that it's better to migrate away from Paradox to Firebird
> >before< migrating to Delphi XE and Unicode.

If you intend for your application to remain unchanged with the exception of
moving over to better underlying technology then just go for the whole jump
and focus on using scripted mechanisms so that you can migrate things in an
automated way, do a bunch of testing, etc. When you find problems, modify
your scripts to convert things over and then keep at it until it is
perfected.

> My applications don't need special character processing, so I don't need
> the Unicode as such.

Well, you really shouldn't have too much trouble by using UTF8 instead of
ASCII if you are only using ASCII characters anyway. This shouldn't be that
big of a deal so I recommend going with a UTF8 based database so that you
are ready for Unicode data when the time comes.

> I assume that I would have a lot of problems getting the Paradox/BDE to
> function in Delphi XE with all the necessary conversions of
> character/string handling code. If I would choose to go to Delphi XE
> before migrating databases.
>
> Any comments?

I would get your data migrated over into a Firebird SQL database and then
migrate your application over to IBO TDataset based components by following
the BDE to IBO Conversion guide on my website www.ibobjects.com.

> Right now I'm preparing the scripts for creating the Firebird database. Is
> there anything I should think about now in relation to future unicode
> string handling?

Well, you could just go ahead and create your database with UTF8 as the
default character set instead of ASCII.

> E.g. when I create a field like
>
> FIRSTNAME CHAR(15)
>
> Will I be able to store a 15 character Unicode string here after I have
> compiled my application with Delphi XE?

Yes, if your database default character set is UTF8.

> Any other considerations/preparations I could do now?

Nothing comes to mind.

Keep us posted on your progress.

Also, if you would like to have more direct support I do have availability
for small or short-term contracts to assist with projects like this. I could
probably do your conversion very quickly. I also provide services of doing
complete code and architecture reviews of IBO based applications to look for
potential problems, performance drains, etc.

Regards,
Jason LeRoy Wharton
www.ibobjects.com



[Non-text portions of this message have been removed]