Anybody know if this could be an informix version 9.3 to 9.4 error?
Posted in 2006
Topics: Stored Procedures & SPL, Connectivity: ODBC / JDBC / .NET, Platform-Specific Issues
So I've got this application running on AIX 5.0 Informix 9.3 I'm testing on Linux, but I've only got Informix 9.4 (uc 2 & uc 8) for Linux. We keep getting this crash in the module, I did an SQL Trace Log and got the following: InvContro e64-d98 EXIT SQLPrepare with return code -1 (SQL_ERROR) HSTMT 01A78758 UCHAR * 0x01B7BBEC [ -3] "SELECT bra.bra_id, bra.bra_screen, dpr.dpr_id, a.xvd_display main, b.xvd_display user1, c.sft_id, c.sft_orqi, c.xct_id, d.sft_id sft_id_trs, d.sft_orqi sft_orqi_trs, d.xct_id xct_id_trs, pss.pss_value2[17,22] row FROM pss, bra, OUTER (dpr, xcv, xvd a, OUTER xvd b), OUTER sft c, OUTER sft d WHERE pss.psq_id = 'BUCEOQ' AND pss.pss_table = '4' AND pss.pss_value1 = bra.bra_id AND pss.pss_value1 = dpr.bra_id AND pss.pss_value2[1,4] = dpr.dpr_id AND xcv.xcd_id = 1 AND xcv.xcv_active = 1 AND xcv.xcv_id <> '~~~~' AND xcv.xcv_id = dpr.dpr_id AND xcv.xcd_id = a.xcd_id AND xcv.xcv_id = a.xcv_id AND a.lng_id = '0' AND xcv.xcd_id = b.xcd_id AND xcv.xcv_id = b.xcv_id AND b.lng_id = '0' AND pss.pss_value2[5,10] = c.sft_id AND pss.pss_value2[11,16] = d.sft_id ORDER BY row\\ 0" SDWORD -3 DIAG [37000] [DataDirect][ODBC Informix driver][Informix]A syntax error has occurred. (-201) The EXACT same SQL passes on the 9.3 box just fine using the same program files, same ODBC, same everything.... What else should I check?
Look at ORDER BY row This may be a new reserved word (have not looked for the list of new reserved words in 9.40). MW -----Original Message----- From: informix-list-bounces@iiug.org [mailto:informix-list-bounces@iiug.org] On Behalf Of monkeybutlersband@yahoo.com Sent: Wednesday, 29 November 2006 12:06 p.m. To: informix-list@iiug.org Subject: Anybody know if this could be an informix version 9.3 to 9.4 error? So I've got this application running on AIX 5.0 Informix 9.3 I'm testing on Linux, but I've only got Informix 9.4 (uc 2 & uc 8) for Linux. We keep getting this crash in the module, I did an SQL Trace Log and got the following: InvContro e64-d98 EXIT SQLPrepare with return code -1 (SQL_ERROR) HSTMT 01A78758 UCHAR * 0x01B7BBEC [ -3] "SELECT bra.bra_id, bra.bra_screen, dpr.dpr_id, a.xvd_display main, b.xvd_display user1, c.sft_id, c.sft_orqi, c.xct_id, d.sft_id sft_id_trs, d.sft_orqi sft_orqi_trs, d.xct_id xct_id_trs, pss.pss_value2[17,22] row FROM pss, bra, OUTER (dpr, xcv, xvd a, OUTER xvd b), OUTER sft c, OUTER sft d WHERE pss.psq_id = 'BUCEOQ' AND pss.pss_table = '4' AND pss.pss_value1 = bra.bra_id AND pss.pss_value1 = dpr.bra_id AND pss.pss_value2[1,4] = dpr.dpr_id AND xcv.xcd_id = 1 AND xcv.xcv_active = 1 AND xcv.xcv_id <> '~~~~' AND xcv.xcv_id = dpr.dpr_id AND xcv.xcd_id = a.xcd_id AND xcv.xcv_id = a.xcv_id AND a.lng_id = '0' AND xcv.xcd_id = b.xcd_id AND xcv.xcv_id = b.xcv_id AND b.lng_id = '0' AND pss.pss_value2[5,10] = c.sft_id AND pss.pss_value2[11,16] = d.sft_id ORDER BY row\\ 0" SDWORD -3 DIAG [37000] [DataDirect][ODBC Informix driver][Informix]A syntax error has occurred. (-201) The EXACT same SQL passes on the 9.3 box just fine using the same program files, same ODBC, same everything.... What else should I check? _______________________________________________ Informix-list mailing list Informix-list@iiug.org http://www.iiug.org/mailman/listinfo/informix-list
monkeybutlersband@yahoo.com wrote: > So I've got this application running on AIX 5.0 Informix 9.3 > I'm testing on Linux, but I've only got Informix 9.4 (uc 2 & uc 8) > for Linux. > > We keep getting this crash in the module, I did an SQL Trace Log > and got the following: > InvContro e64-d98 EXIT SQLPrepare with return code -1 (SQL_ERROR) > HSTMT 01A78758 > UCHAR * 0x01B7BBEC [ -3] "SELECT bra.bra_id, > bra.bra_screen, dpr.dpr_id, a.xvd_display main, b.xvd_display user1, > c.sft_id, c.sft_orqi, c.xct_id, d.sft_id sft_id_trs, d.sft_orqi > sft_orqi_trs, d.xct_id xct_id_trs, pss.pss_value2[17,22] row FROM pss, > bra, OUTER (dpr, xcv, xvd a, OUTER xvd b), OUTER sft c, OUTER sft d > WHERE pss.psq_id = 'BUCEOQ' AND pss.pss_table = '4' AND pss.pss_value1 > = bra.bra_id AND pss.pss_value1 = dpr.bra_id AND pss.pss_value2[1,4] = > dpr.dpr_id AND xcv.xcd_id = 1 AND xcv.xcv_active = 1 AND xcv.xcv_id <> > '~~~~' AND xcv.xcv_id = dpr.dpr_id AND xcv.xcd_id = a.xcd_id AND > xcv.xcv_id = a.xcv_id AND a.lng_id = '0' AND xcv.xcd_id = b.xcd_id AND > xcv.xcv_id = b.xcv_id AND b.lng_id = '0' AND pss.pss_value2[5,10] = > c.sft_id AND pss.pss_value2[11,16] = d.sft_id ORDER BY row\\ 0" > SDWORD -3 > > DIAG [37000] [DataDirect][ODBC Informix driver][Informix]A syntax > error has occurred. > (-201) > > The EXACT same SQL passes on the 9.3 box just fine using the same > program files, same ODBC, same everything.... > What else should I check? I see 'ORDER BY row\\ 0'. I also see that you aliased the last column selected as 'row', but I think the problem is the '\\ 0' is causing this to be interpretted as 'row 0' with an embedded space which is a syntax error. Perhaps the application is not properly terminating the SQL string it's passing to IDS or perhaps the SQL is longer than the allocated char array and it's overwriting memory and just happens to end in something that looks this way! Been there, done that! I now make all SQL string buffers 64K long since that's the longest SQL that IDS can understand. Art S. Kagel