> The same goes for Oracle, although you will indeed
> introduce more issues into your code (most of which
> revolve around inserting conditional code that
> inserts the nextval of a sequence when creating
> a new record... no big deal.

I don't use sequences myself... I'd love to... but until they're more
widely supported I use other techniques... although moreover I tend to
use varchar columns for primary keys and populate them with something
similar to a GUID/UUID. There's another advantage to this in that I
antiscipate plugins adding / installing "default values" in some of
these tables, for instance, the Forum plugin will add a "Forum
Moderator" role to the roles table, and the Members onTap plugin is
designed in such a way that it can use a canonical name (i.e.
"tap_forummoderator") instead of the default GUID/UUID-like string to
identify the role it creates and eliminate the need to write extra
code to check to see if such a record had already been added and/or
what its ID was when created.

> Plus you have to take care to adjust cfqueryparam so
> it uses the null parameter when appropriate rather
> than allowing an empty string).

I thought this was necessary for all databases...

> Writing for Access is a bit of a challenge.  Off the top
> of my head:

> values like record IDs are returned with a single
> decimal no matter what you do.  Record ID 123 will
> arrive from Access as 123.0 no matter what your
> settings are in the db for the field.  So as a
> habit I fix() every value where this can be an issue.

I never noticed that... though I usually format numbers when they're
displayed anyway and don't display record ID's.

I was going to say -- multiple outer joins use a syntax which is not
compatible with other databases, but which is _required_ with Access.
Moreover it's a nested syntax, so it's not "easy" to tweak the
existing code to support it. I have a tag which converts my own syntax
into the appropriate join syntax for each database (including Access
nested joins and Oracle 8's proprietary outer-join syntax). The
alternative of course is to try and avoid multiple outer joins by
using alternative CF syntax.

> Access will explode on contact with ANY date field
> when you try to use cfqueryparam on it.  None of the
> cfsqltypes work so you have to write your code with
> this in mind and protect yourself in other ways.

Strange... I've been able to get cf_sql_timestamp to work...

> Thats not so much, really, when it comes to supporting
> Access.  The only other element is I write auto-installers
> for my system, which include table/index/sequence builders.
> So I have to write Create Table statements for each platform,
> as well as Alter Table statements for the upgraders.
> The syntax for these varies quite a bit.

I have a handfull of tags which generate the appropriate create-table
/ alter-table syntax for each database... As I mentioned, I avoid
sequences, although iirc the tags do include them... So my installer
only has one set of code for all db's and then the framework handles
the individual variations. Saves me time in developing the installers.

s. isaac dealey     954.522.6080
new epoch : isn't it time for a change?

add features without fixtures with
the onTap open source framework

http://www.fusiontap.com
http://coldfusion.sys-con.com/author/4806Dealey.htm


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Logware (www.logware.us): a new and convenient web-based time tracking 
application. Start tracking and documenting hours spent on a project or with a 
client with Logware today. Try it for free with a 15 day trial account.
http://www.houseoffusion.com/banners/view.cfm?bannerid=67

Message: http://www.houseoffusion.com/lists.cfm/link=i:4:208873
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4
Donations & Support: http://www.houseoffusion.com/tiny.cfm/54

Reply via email to