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]

Reply via email to