September 13, 2005
Breathless anticipation
I have decided to pull the mckoi stuff out of my standard build.
Why you ask?
- Mckoi doesn't have triggers.
- Mckoi doesn't have anything like isql.
- Mckoi doesn't have (ugh) stored procedures.
- The firebird driver for 1.4 is satisfactory.
- The sql problem is an ant problem, and if mckoi DID have triggers and stored procedures, I wouldn't be able to deal with them due to 2.
- As far as I can tell, all development on mckoi has stopped, while firebird has a decent user community.
- Embedded firebird is NOT single user.
Eventually, I will have to put an oracle build in, but that will wait until I have a decent oracle to connect to (I am doing most of my development at work - and - believe it or not, I am not on the company network).
Posted by liz at 09:45 AM | Comments (0) | TrackBack
September 06, 2005
Dirty little secrets (how to get embedded firebird working with java)
The sourceforge site for firebird LIES. I am sure they didn't mean to - but they do. The jaybird dll and all the jca stuff that is labeled jdk 1.4 is really 1.5. The page in question is http://www.firebirdsql.org/index.php?op=files&id=jaybird.
The error you will get if you try to run this code under 1.4 is:
java.lang.UnsupportedClassVersionError:
org/firebirdsql/jdbc/FBDriver (Unsupported major.minor version 49.0)
I found the source (it is hidden) and tried to recompile for 1.4. I got everything I needed EXCEPT for the jaybird.dll. I then gave up, moved my machine to 1.5 (should have done this earlier - but couldn't due to my last project), ran my test program and found yet another error .
org.firebirdsql.gds.impl.jni.InternalError: FirebirdApiBinding::Initialize - Could not find or load the GDS32.DLL
By this time I was getting pissed. I then dropped the fbembed.dll in my system32 directory and it worked fine.
So, if you are going to be developing against embedded firebird with java (haven't had to do this with either rails OR C#) just drop the dll in your system32 directory. Otherwise you are going to have to play with your java properties in order to find it - and you probably have better things to do with your time.
Posted by liz at 02:13 PM | Comments (0) | TrackBack
Why Firebird
I am trying to move from using mckoi as my default test database to firebird. I really didn't want to do this, but I also cannot afford to buy an odbc driver for mckoi. Also, I am trying to move all my gobs stuff into 3 different languages, java (it is there already), C#, and ruby. mckoi only works for one of them, firebird works for all of them. I can also use firebird with NEO, Spring for Net, and NHibernate. Firebird wins.
Why not Mysql? Simple reason - I HATE it. I use mysql only when forced to by finances. By finances I mean - cheap server farms. The farm who I have a very positive history with does not support any other database - so the php programs I write for it use mysql.
Why do I hate it? Because I use free databases to test software that will eventually go into production. This means that the databases must support triggers and views (I don't care about stored procedures). I also want to be able to test this software on a unix server using anthill/ant and I certainly don't want to have to start a server with my anthill first. I want a server that is embedded into my test environment - so that I don't have to worry the sys admin about databases. Both mckoi and embedded firebird fulfill this need.
So, right now, I am totally retooling my standardized environment to use either mckoi or firebird. Because the jaybird people are inaccurate (their 1.4 implementation is really a 1.5 implementation) all java 1.4 products will use mckoi. Everything else will use firebird UNLESS I am trying to emulate oracle. Then, I will probably use mckoi.
Posted by liz at 10:40 AM | Comments (0) | TrackBack