inicio mail me! sindicaci;ón

Reflective Surface

Still powered by a contradiction in terms

Informix is killing me

There are a lot of bad database engines out there, but Informix is surely one of the worst I have ever used in my whole programming career. I’m using a 7.x release in one project here at work, and I think I’ll go crazy if I don’t finish it soon. To tell the truth, it’s the second time I had to use Informix in a project, but the first was long ago and I had already forgotten how abominable it is.

Just to begin with the list of problems, support to SQL-92 ranges from minimal to non-existent. There are severe inconsistencies in the SQL support all over its parser. For example, I had one view that didn’t work as expected until I changed the select statement to use the default Informix syntax instead of the SQL-92 syntax I was using. The view kept bringing null values where none was should appear, but when I run the standalone select statement against the database it returned the correct result set.

Another big problems is the limit in the length of the identifiers, which are restricted to 18 characters. This is simply laughable, and makes naming keys and fields a nightmare — especially when working with a internal standard that requires fields to be prefixed with mnemonic type indicators and uses underscores to separate words wasting further space.

Also, blob fields are not directly support in inserts and updates. Granted, many other database engines do not support this feature, but it doesn’t matter. If one database engine supports it, all others should support it as well.

Informix also allows auto-incremented fields but doesn’t provide any direct way to retrieve the last inserted value atomically. (I couldn’t find any reference to such function, but I’d be glad to be proved wrong.)

To add insult to injury, the OLE-DB driver doesn’t work at all, and the ODBC driver is terribly inefficient and hard to configure. Also, as I couldn’t manage to install the ODBC driver in my machine, I have to access the server (a SCO Unix) via a telnet connection using a very archaic interface.

After the past days, I give myself the right of self-pity. :-)

Gravatar

Ian Jones said,

May 27, 2003 @ 9:27 am

Ronaldo,

Believe me when I say that I do feel sorry for you, as a long time Informix consultant, I’ve had to deal with these kind of inconsistencies and problems for some time.

However, if you’re having problems installing the ODBC driver on your computer because you don’t have Admin rights, just run the “IBM Informix Client-SDK.msi” instead of the Setup.exe, this allows you to install a private version.

Hope things get better for you on the Informix front, you’ll find that Informix is actually pretty good at what it does. It’s very reliable and performs well.

Take care,

Ian.

Gravatar

Ronaldo said,

May 27, 2003 @ 9:55 am

Ian,

Thanks for your words. :-)
The two past weeks were a terrible nightmare with regards to Informix but I know it’s because I don’t have much experience with it. We had a SCO Unix machine running Informix, and it suddenly died due to a disk failure. I was put in charge of reinstalling the database server on Windows NT, and I’m trying to learn about the Informix server as I go. I managed to install the server and properly configure it. Now I’m trying to load some tables from files but the server is hanging when a certain table is loaded. It’s a small table but the operation never completes. I’m completely lost about this. I’ll just keep trying with different parameters. :-)
As for the ODBC driver, I didn’t found the file you mentioned on the CD I have. Is it downloadable?

Gravatar

Mike McEntee said,

February 16, 2005 @ 2:09 pm

Hi to all you Informix Consultants out there!

I just wanted to let you know, if you have Informix New Era experience and you are able to work in the UK on a Contract basis, and you are looking….

Please get in contact as I might just be able to place you in your next contract!

Regards

Mike McEntee
Xansa Recruitment
mike.mcentee@xansa.com

RSS feed for comments on this post