On Aug 31, 2009, at 2:54 PM, Tim Worman wrote:
WO'ers:
My app is crashing with an sql error that looks like this:
SQL ERROR - [position 572, near 'WHERE' in 'IBUTION t0 WHERE
(t0.is_d'] (1) field 'id' not found in table 'FUND_DISTRIBUTION'.
SQL: SELECT t0.account_number, t0.appt_begin_date, t0.appt_num,
t0.cost_center_code, t0.create_date, t0.dist_dept_code, t0.dist_num,
t0.dist_off_above, t0.dist_payrate_hour, t0.dist_payrate_month,
t0.dist_percent, t0.dist_perq, t0.dist_step, t0.dos_earnings_type,
t0.emp_full_name, t0.emp_status, t0.employee_id,
t0.fund_distribution_id, t0.fund_number, t0.hrly_as_mthly_est,
t0.id, t0.is_debit, t0.job_id, t0.location_code, t0.modify_date,
t0.pay_begin_date, t0.pay_end_date, t0.project, t0.sub_code,
t0.sub_location, t0.title_code, t0.work_study_pgm FROM
FUND_DISTRIBUTION t0 WHERE (t0.is_debit = 'false' AND
(t0.dos_earnings_type <> 'STP' AND t0.dos_earnings_type <> 'RES' AND
t0.job_id = 219)) ORDER BY t0.pay_end_date DESC
In my model there is no "id" attribute for the FundDistribution
entity. The table obviously doesn't have a matching column hence the
error. But why is sql being generated for an attribute that doesn't
exist? I looked at FundDistribution.plist in the model and there is
no "id" attribute in there.
Your model must contain an attribute with some name (which could be
very different than "id") and which has a columnName of "id". You will
not see this by looking at the attribute names.
I've recently been refactoring a large monolithic model/framework
into smaller focused models/frameworks. As part of this I've also
been moving to utilizing prototypes. In some cases I'm using the
"id" prototype for certain primary/foreign key attributes. Could
this be a genesis of this issue?
It certainly could be. You could write your EOModels to stdout and see
what they look like. Prototypes are put in by the tools and so if you
look at the model as it exists in memory, you should be able to see
what it has and what it really does not have. You can either dump the
model out to a temporary file with the writeToFile() method, the
contents of which you can then read in as a NSDictionary, or iterate
through the entities and write out the lists of attributes. If you
look at the columnName() of the attributes, you should be able to see
the bad value.
The destination database is OpenBase.
This should not matter. Unless there is an EOSQLExpression bug
specific to OB, the problem is in the model.
- ray
_______________________________________________
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]