Hi Rainer,
I fully agree with you, it's a good idea to log and wait, as it
seems very hard to reproduce. Anyway it is not critical (it's an insert
used for statistic, so if the failure is rare that does not matter
much). I will do that and inform you if I get something (I am assuming
you are as curious as me to know what might happen?).
I did not have time to used prepared statement yet, but I read about
them and looked at the example. But I was wondering if setting
PreparedStatementsEnabled to true is enough to get the prepared
statement to work with an insert or an update (I mean not preparing the
statement at each call), i.e. if I can still do at each call:
rec.create(GeneralApp.db.T_SEARCH_TERMS_LOG);
rec.setValue(GeneralApp.db.T_SEARCH_TERMS_LOG.C_SEARCH_TERMS, searchTerms);
...
rec.update(conn);
Or if I have to prepare something first, then set some parameter at each
insert and do the update. That I could not find in the documentation
(for the query it is very clear from the examples).
//Alain
On 04/03/2013 09:49, Rainer Döbele wrote:
Hi Alain,
as far as I can tell we have not deliberately fixed this.
As with most problems: if we cannot find a way to reproduce it - it will be
almost impossible to fix.
At the moment I cannot see, how a statement for Oracle without the TO_DATE()
phrase can be generated at all.
I.E. for the DATE_TIME type is should always look like this:
TO_DATE('2013-03-03 14:22:33', 'YYYY-MM-DD HH24:MI:SS')
What you can do:
1. subclass the DBDatabaseDriverOracle class
2. override getSQLDateTimeString, call the base implementation and log the
result. You may even check for TO_DATE and set a breakpoint if it is missing.
e.g.:
@Override
protected String getSQLDateTimeString(Object value, int sqlTemplate, int
sqlPattern, int sqlCurrentDate)
{
String res = super.getSQLDateTimeString(value, sqlTemplate,
sqlPattern, sqlCurrentDate);
if (res.indexOf('TO_DATE'))<0)
{
log.warn("Something's wrong here: "+value);
}
return res;
}
I'd be curious to know if it even gets in there.
Regards
Rainer
BTW: Have to tried with prepared statements yet?