Thank you, ChukThis sounds intriguing. Something deep in EOF... I will experiment with this, but I can't find the best way to get the EOAdaptorChannel to set a delegate for it. Possibly intercepting it at the moment of creation.
In fact I thought that was a common problem interacting with third party databases. And that there should exist some common solution... 2009/3/17 Chuck Hill <[email protected]> > These are Java exceptions, not EOF exceptions. So this won't be easy... > Look in EOAccess at the interface EOAdaptorChannel.Delegate. Specifically > the adaptorChannelDidFetchRow method. You should be able to implement > that, look for such values, and replace them with the null marker (or remove > them, I don't recall the dictionary contents at this level). > > > http://developer.apple.com/documentation/MacOSXServer/Reference/WO54_Reference/com/webobjects/eoaccess/EOAdaptorChannel.Delegate.html#adaptorChannelDidFetchRow(com.webobjects.eoaccess.EOAdaptorChannel,%20com.webobjects.foundation.NSMutableDictionary) > > I don't recall offhand how to set the delegate. I thought there was a > notification, but I could not find it. > > > Chuck > > > > On Mar 17, 2009, at 11:08 AM, Gennady Kushnir wrote: > > > What is the exception and stack trace? >> >> com.webobjects.jdbcadaptor.JDBCAdaptorException: Value '0000-00-00' can >> not be represented as java.sql.Date >> >> it shows 2 stacks... >> >> [2009-3-17 20:59:43 MSK] <WorkerThread9> Value '0000-00-00' can not be >> represented as java.sql.Dateat >> com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055) >> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) >> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926) >> at com.mysql.jdbc.ResultSetRow.getDateFast(ResultSetRow.java:134) >> at com.mysql.jdbc.ByteArrayRow.getDateFast(ByteArrayRow.java:235) >> at com.mysql.jdbc.ResultSetImpl.getDate(ResultSetImpl.java:2115) >> at com.mysql.jdbc.ResultSetImpl.getDate(ResultSetImpl.java:2067) >> at com.mysql.jdbc.ResultSetImpl.getObject(ResultSetImpl.java:4895) >> at >> com.webobjects.jdbcadaptor.JDBCColumn._fetchCorrectObject(JDBCColumn.java:294) >> at com.webobjects.jdbcadaptor.JDBCColumn._fetchValue(JDBCColumn.java:384) >> at com.webobjects.jdbcadaptor.JDBCColumn.fetchValue(JDBCColumn.java:372) >> at com.webobjects.jdbcadaptor.JDBCChannel.fetchRow(JDBCChannel.java:1462) >> at >> com.webobjects.eoaccess.EODatabaseChannel._fetchObject(EODatabaseChannel.java:321) >> at >> com.webobjects.eoaccess.EODatabaseContext._objectsWithFetchSpecificationEditingContext(EODatabaseContext.java:3071) >> at >> com.webobjects.eoaccess.EODatabaseContext.objectsWithFetchSpecification(EODatabaseContext.java:3195) >> at >> com.webobjects.eoaccess.EODatabaseContext._fireFault(EODatabaseContext.java:4187) >> at >> com.webobjects.eoaccess.EOAccessFaultHandler.completeInitializationOfObject(EOAccessFaultHandler.java:89) >> at >> com.webobjects.eocontrol.EOCustomObject.willRead(EOCustomObject.java:1172) >> at >> com.webobjects.eocontrol._EOMutableKnownKeyDictionary$Initializer$_GenericRecordBinding.valueInObject(_EOMutableKnownKeyDictionary.java:570) >> at >> com.webobjects.eocontrol.EOCustomObject.storedValueForKey(EOCustomObject.java:1634) >> at net.rujel.vseobuch._VOStudent.lastName(_VOStudent.java:71) >> >> ... etc (NSKeyValueCoding and appendToResponse) >> >> and: >> >> at com.webobjects.jdbcadaptor.JDBCColumn._fetchValue(JDBCColumn.java:391) >> at com.webobjects.jdbcadaptor.JDBCColumn.fetchValue(JDBCColumn.java:372) >> at com.webobjects.jdbcadaptor.JDBCChannel.fetchRow(JDBCChannel.java:1462) >> at >> com.webobjects.eoaccess.EODatabaseChannel._fetchObject(EODatabaseChannel.java:321) >> at >> com.webobjects.eoaccess.EODatabaseContext._objectsWithFetchSpecificationEditingContext(EODatabaseContext.java:3071) >> at >> com.webobjects.eoaccess.EODatabaseContext.objectsWithFetchSpecification(EODatabaseContext.java:3195) >> at >> com.webobjects.eoaccess.EODatabaseContext._fireFault(EODatabaseContext.java:4187) >> at >> com.webobjects.eoaccess.EOAccessFaultHandler.completeInitializationOfObject(EOAccessFaultHandler.java:89) >> at >> com.webobjects.eocontrol.EOCustomObject.willRead(EOCustomObject.java:1172) >> at >> com.webobjects.eocontrol._EOMutableKnownKeyDictionary$Initializer$_GenericRecordBinding.valueInObject(_EOMutableKnownKeyDictionary.java:570) >> at >> com.webobjects.eocontrol.EOCustomObject.storedValueForKey(EOCustomObject.java:1634) >> at net.rujel.vseobuch._VOStudent.lastName(_VOStudent.java:71) >> >> >> 2009/3/17 Chuck Hill <[email protected]>: >> > >> > On Mar 17, 2009, at 10:48 AM, Gennady Kushnir wrote: >> > >> >> Hello list. >> >> Is there some known hint to get rid with exception raised when dealing >> >> with zero dates in SQL? >> >> I'm taking data from database maintained with a third party program. >> >> When a date is undefined that program puts "0000-00-00" into database >> >> which is acceptable for SQL but raises an exception in WO. >> >> How can I make EOF treat that value normally returning null for date >> >> in corresponding EnterpriseObject? >> > >> > What is the exception and stack trace? >> > >> > >> > Chuck >> > >> > >> >> Thanks in advance >> >> Gennady >> > >> > >> > -- Chuck Hill Senior Consultant / VP Development >> > >> > Practical WebObjects - for developers who want to increase their overall >> > knowledge of WebObjects or who are trying to solve specific problems. >> > http://www.global-village.net/products/practical_webobjects >> > >> > >> > >> > >> > >> > >> > >> >> > -- > Chuck Hill Senior Consultant / VP Development > > Practical WebObjects - for developers who want to increase their overall > knowledge of WebObjects or who are trying to solve specific problems. > http://www.global-village.net/products/practical_webobjects > > > > > > >
_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [email protected]
