Maybe ERXSQLQueryWithBindingsUtilities could be useful here. You'd still have to parse the binding values, but at least you'd get to keep the SQL.
Fabian > Am 25.09.2015 um 00:48 schrieb Chuck Hill <ch...@gevityinc.com>: > > The challenge is going to be "In addition these statements are > parameterized with ? so they can be precompiled and then used with > different query values² > > You might be able to parse and rewrite those as EOQualifierVariables and > then use qualifier.qualiferWithBindings, but you are going to have to know > the bindings for each statement. That all might be as much work as making > proper EOQualifiers. > > Chuck > > On 2015-09-24, 11:48 AM, > "webobjects-dev-bounces+chill=gevityinc....@lists.apple.com on behalf of > Johann Werner" <webobjects-dev-bounces+chill=gevityinc....@lists.apple.com > on behalf of j...@oyosys.com> wrote: > >> Hi Markus, >> >> I did not clearly understand what you are exactly trying to achieve. If >> you just need to run the vendor specific SQL to get a list of primary >> keys that you can then use to fetch the EOs you want you could do >> something like >> >> >> EOEditingContext ec = ERXEC.newEditingContext(); >> EOEntity entity = ERXEOAccessUtilities.entityNamed(MyEntity.ENTITY_NAME); >> EODatabaseContext context = >> EODatabaseContext.registeredDatabaseContextForModel(entity.model(), ec); >> EOSQLExpressionFactory factory = >> context.database().adaptor().expressionFactory(); >> EOSQLExpression expression = factory.expressionForString("SELECT Š"); >> NSArray<NSDictionary> rawRows = >> ERXEOAccessUtilities.rawRowsForSQLExpression(ec, entity.model().name(), >> expression); >> NSArray<Integer> idList = rawRows.valueForKey("id³); >> NSArray<MyEntity> result = MyEntity.fetchMyEntities(ec, ERXQ.in("id", >> idList), null); >> >> >> Otherwise if you need more than that and need to fetch EOs but have to >> use your own SQL instead of the generated one by EOF you probably can do >> this by using the hints dictionary of a fetch specification. Something >> like >> >> >> EOEditingContext ec = ERXEC.newEditingContext(); >> ERXFetchSpecification<MyEntity> fs = new >> ERXFetchSpecification<>(MyEntity.ENTITY_NAME); >> NSDictionary<String, String> hints = new NSDictionary<>("SELECT Š" , >> EODatabaseContext.CustomQueryExpressionHintKey); >> fs.setHints(hints); >> NSArray<MyEntity> result = fs.fetchObjects(ec); >> >> >> Though I never used that sort of logic but you could experiment with >> that. All code above is written by peeking at the API documentation with >> extremely wild guesses included‹so no guarantees that it is correct or >> complete. Use at your own risk ;-) >> >> jw >> >> >>> Am 24.09.2015 um 16:22 schrieb Markus Ruggiero >>> <mailingli...@kataputt.com>: >>> >>> Folks, >>> >>> What is the preferred way to fetch EOs when you have a db vendor >>> specific "select id from ... where ....." statement? >>> >>> I need to interface with a legacy system where I have to incorporate >>> the functionality of an external java tool into a Wonder app. This >>> external tool executes raw SQL select statements which it reads from a >>> file. All the statements are in the form given above and return a list >>> of primary key values (single column fortunately). The tool then >>> iterates through that list and does whatever it has to do (issuing tons >>> of more raw sql). My problem is that these select statements are rather >>> complex and there are many of them. It is just not feasible to replace >>> those with proper EOQualifiers. In addition these statements are >>> parameterized with ? so they can be precompiled and then used with >>> different query values. However everything can be done with standard EOs >>> as soon as I have those corresponding to the returned list of ids. >>> >>> Thanks a lot >>> ---markus‹ >> >> > > > _______________________________________________ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/lists.fabian%40e-lumo.com > > This email sent to lists.fab...@e-lumo.com _______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com