Hi Guys, I hope my explanation can be of use to some folks. 
Problem - Exception: DBD, [CA][Ingres ODBC Driver][Ingres]The requested operation cannot be performed with active transactions.State: 25000" when running manual month end reports in v11.
Problem - When using the generic odbc and odbc3 datasources we have changed the sqlsrv.prm files to dd/mm/yyyy user input. yet when generating a query the mm/dd/yyyy is used
Problem Exception: DBD, [CA][IngresODBC Driver ][ Ingres] 15 is not a valid month for a date column. State 22008
Solution to dates with generic odbc
The first thing is to understand how it works, below is my understanding which seems to fit whats happening.
We are using Ingres Net with a generic odbc driver, so the file defining dates used is odbc.prm. This file is used for odbc and odbc3 connections.
If using Infoview and opening Deski from this the Infoview browser application the file is located on the server in folder E:\Program Files\Business Objects\BusinessObjects Enterprise 11.5\win32_x86\dataAccess\connectionServer\odbc, note our programs are on drive E.
If however the browser interface is not being used and connection to database is made directly from the PC then the file used is the one on the PC in folder
C:\Program Files\Business Objects\BusinessObjects Enterprise 11.5\win32_x86\dataAccess\connectionServer\odbc
Once this file has been obtained the next thing to ascertain is what is the date format used / expected by the database system, in this case Ingres.
For other reasons outside of this document we have specified that the date format is yyyy-mm-dd which is the European format and is specified in Ingres using the Ingres Environment variable II_DATE_FORMAT=ISO. ISO (International Standards Organisation) sets the date formats that Ingres will expect.
For this reason BO must generate the date in the correct format for Ingres.
It does it by reading the odbc.PRM file, line
{\d ‘yyyy-mm-dd’}
I think the other date line is for Java
the \d indicates a date field followed by its format.
Now how does BO know you have entered a date and what format can you enter. If you look at the bottom of the screen when a report is displayed the date format being used is shown e.g. Last Exec: 24/09/2008 .
To change it open Desktop Intelligence on the desktop from Infoview and set the date format to English UK, tools/options/language. It may already say English but that will be the American English as its a US product. You need to select from unsupported languages the English(United Kingdom) option, and you have to select Forced Migration so that any older reports are forced to use this date format.
Thus you will now be able to use dd/mm/yy or dd/mm/yyyy.
So that concludes my explanation
Date defined in Deski
Date for database to read defined in .PRM file
Note there is a .PRM file for SQL, OLE DB, Oracle, Access and others.
chriswilby
(BOB member since 2007-05-11)