Subject Re: [Firebird-Architect] GUID Key Fields
Author Kevin Berry
--- "Ann W. Harrison" <aharrison@...> wrote:
> You've missed my point which is that Firebird is a
> cross platform
> database and we expect our applications will run -
> and replicate -
> across Windows, Linux, BSD, MAC, and other
> proprietary Unix systems.
> GUID makes sense as a type only if it will reliably
> produce unique
> identifiers on all systems. From what I have heard
> and read, that is
> not the case.

I don't think so... The databases will still be cross
platform. A GUID/UUID is simply a special 128-bit
number. That's all. The database doesn't have to
automatically generate it. That can be left up to the
developer. For example, if I write a Delphi/Kylix
application on Windows and Linux and use my own GUID
generation code it will be 100% cross platform. To
make it even more cross platform I can write the app
in C++ that generates the GUIDs using a standard UUID
generation library.

Also, there are already free cross platform UUID
generating UDF libraries available Firebird. Correct
me if I'm wrong, but I believe if I use one of these
libraries to generate the UUID with a generator and
then store it in the new uniqueidentifier field I've
proposed it will be cross platform as well.

I think you're thinking of this in terms of the
database generating the new unique identifier. I'm
saying that would be up to the developer, not the
database.

In summary: The implementation is as simple as just
creating the "container" for the field, nothing more.

NOTE: GUIDs are UUIDs. Same text representation, both
128-bit.

Thanks,
Kevin.




__________________________________
Do you Yahoo!?
Make Yahoo! your home page
http://www.yahoo.com/r/hs