Hi Philippe,
On 2011-09-04, at 7:49 AM, Philippe Rabier wrote: > Hi all, > > Not a question but a feedback if you have the same issue but I don't have > explanation and I didn't look for any. > > Env: > WO 5.4.3, java 6 on Mac OS X 10.6.7, Eclipse 3.4, Wonder a bit old (several > months), MySQL v5.0.88 > > Context: > DA where informations are checked, fetched then if everything is fine, > informations are saved. At the end, we write into a log the request plus the > result and some informations (IP address, …). > > When informations are saved, I decided to use EOUtilities.rawRowsForSQL to > execute an insert sql command in order to optimize the complete R-R. I think that is the root of the problem: "EOUtilities.rawRowsForSQL" and "execute an insert sql command". rawRows is for a SELECT and uses evaluateExpression. That is not compatible with an INSERT statement. My guess is that it leaves something inside EOF in a bad state. What you should use for this is ERXEOAccessUtilities.evaluateSQLWithEntityNamed. Chuck > > Then I write into the log the request, result, … as I said. > > If the insert command is executed, when the log is saved (through its > editingContext), I got an exception when the adaptor tries to get a new > primary key: > > Sep 04 14:52:56 YNP_NOWebServicesApp[5000] DEBUG NSLog - Searching for > primary key value for NO_Sent_Notification_Request_Log_TEST > Sep 04 14:52:56 YNP_NOWebServicesApp[5000] DEBUG NSLog - > evaluateExpression: <com.webobjects.jdbcadaptor._MySQLPlugIn$MySQLExpression: > "SELECT PK FROM EO_PK_TABLE WHERE NAME = > 'NO_Sent_Notification_Request_Log_TEST' FOR UPDATE" withBindings: > > Sep 04 14:52:56 YNP_NOWebServicesApp[5000] INFO > er.extensions.ERXAdaptorChannelDelegate.sqlLogging - "Unknown"@795485135 > expression took 232 ms: SELECT PK FROM EO_PK_TABLE WHERE NAME = > 'NO_Sent_Notification_Request_Log_TEST' FOR UPDATE > Sep 04 14:52:56 YNP_NOWebServicesApp[5000] DEBUG NSLog - fetch canceled > Sep 04 14:52:56 YNP_NOWebServicesApp[5000] DEBUG NSLog - 0 row(s) processed > Sep 04 14:52:56 YNP_NOWebServicesApp[5000] INFO > er.transaction.adaptor.Exceptions - Database Exception occured: > java.lang.IllegalArgumentException: Array is empty > > If I replace EOUtilities.rawRowsForSQL with > ERXEOAccessUtilities.insertRow(ec, > NOAppOpenedAfterPushEvent.Keys.ENTITY_NAME, dic), everything works great. > > For those who were wondering why I wanted to use EOUtilities.rawRowsForSQL(), > the reason is that I wanted to use "INSERT DELAYED INTO ". > > Have a good sunday. > > Philippe > > _______________________________________________ > 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/chill%40global-village.net > > This email sent to [email protected] -- 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]
