All -
I'm trying to solve a lil' problem here. The semi-short story is
that prior to doing a fetch, I'm going to do a raw SQL fetch to
determine how many rows would be returned - i.e., I'll do a "select
count(*)" based on the search parameters. If the count is greater
than a predetermined fetch limit, then I respond w/ a message to
further restrict the query.
To do this, I build my qualifiers as usual create a fetch spec based
on the qualifiers and then pass them into a JDBCExpression. The code
looks like this:
EOFetchSpecification fetchSpec = new EOFetchSpecification
(entityName, searchQualifier, null);
JDBCExpression sqlExpression = new JDBCExpression(entity);
sqlExpression.prepareSelectExpressionWithAttributes
(entity.attributes(), false, fetchSpec);
String rawSQLQuery = "SELECT COUNT(*) FROM " +
entity.externalName() + " WHERE " + sqlExpression.whereClauseString();
if (!sqlExpression.joinClauseString().equals("")) {
rawSQLQuery = rawSQLQuery + " AND " +
sqlExpression.joinClauseString();
}
Unfortunately, the where clause being generated by .whereClauseString
() is parameterized, e.g.,
SELECT COUNT(*) FROM PLAYLIST t0, CONTENT_PROVIDER T1 WHERE
(((t0.FIRST_PRODUCTION_RELEASE is not ? AND
t0.LAST_PRODUCTION_RELEASE is ?) AND T1.CONTENT_PROVIDER_ID = ?) AND
UPPER(t0.NAME) LIKE UPPER(?) ESCAPE '\')
What I can't seem to figure is how to get the string returned w/ the
parameters replaced w/ the actual bound values.
So, first, am I heading down the right path or is there a better way?
If I am headed in the right direction, what am I missing?
Thanks,
mX.
Michael Xenakis
Architect
Übermind, Inc.
206.290.3362
[EMAIL PROTECTED]
http://www.ubermind.com
IM: mgxenakis
AIM: Take2AndCa11Me
MSN: [EMAIL PROTECTED]
_______________________________________________
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]