Re: Informix 7.2 Y2K Issue
Posted in 1999
Topics: Connectivity: ODBC / JDBC / .NET, Server Administration
> My DBA changed the environment variable DBCONFIG to 'F'. In ISQL, the > problem disappeared. '01/01/00' was correctly interpretted as > '01/01/2000'. But when I used my front-end system, it still came up as > 1900. > > Does anyone have a suggestion other than changing my front-end to accept > 4-digit years? I'm not familiar with the DBCONFIG variable you mention and would bet that the DBA actually set DBCENTURY. I assume (I'm doing a lot of that lately - more information on specific versions of Informix and hardware/OS would help) that you're running on some Unix variant, that your DBA made the change in the environment and then restarted the engine, and then you tested on the server using isql. Correct? I suspect, though, that your ODBC driver is doing a little work before the data is passed to the engine. What ODBC driver are you using? If it is the Merant/Intersolv driver packaged with Informix, you'll need to use the setnet utility on the PC host to change the DBCENTURY environment variable. If it's OpenLink, use the Web Configurator to add the environment variable and its value to the appropriate agent. Mark Collins mcollins@us.dhl.com Life moves pretty fast. If you don't stop and look around once in a while, you could miss it. -- Ferris Bueller
Mark Collins wrote: > > My DBA changed the environment variable DBCONFIG to 'F'. In ISQL, the > > problem disappeared. '01/01/00' was correctly interpretted as > > '01/01/2000'. But when I used my front-end system, it still came up as > > 1900. > > > > Does anyone have a suggestion other than changing my front-end to accept > > 4-digit years? > > I'm not familiar with the DBCONFIG variable you mention and would bet that the DBA > actually set DBCENTURY. I assume (I'm doing a lot of that lately - more > information on specific versions of Informix and hardware/OS would help) that > you're running on some Unix variant, that your DBA made the change in the > environment and then restarted the engine, and then you tested on the server using > isql. Correct? > > I suspect, though, that your ODBC driver is doing a little work before the data is > passed to the engine. Or whatever front-end tool you are using. The key issue is: where is the string '01/01/00' being converted from a string to a date? When you tried this with I-SQL, it was passed to the engine as a string, and the engine converted it to a date, taking into account the DBCENTURY setting your DBA had specified. If the front-end puts the '01/01/00' into a date variable, *it* is responsible for converting it to a real date (i.e. including the century) and doesn't know about any DBCENTURY value set by your DBA in the engine. This was the topic of my last TechNotes article, published without my knowledge, and editted, much to my disgust, by someone who obviously didn't understand what the primary purpose of the article was in the first place. Still, if you can get a copy of it (not sure if it's available from the website), it might shed some more light on this. June -- june_t@hotmail.com Still alive -- just when you thought it was safe to come out with the chocolate... Please do not send Informix questions to this account. I would add 'Please do not send spam to this account' but I suppose I would be wasting my bits.