On Jul 7, 2008, at 7:19 AM, Frédéric JECKER wrote:

Hi,

I recently changed a table primary key column from NUMBER(6) to NUMBER(12) for a legacy app. After this change I had a lot of bugs and discovered that search queries where returning zero rows. In this legacy app, a lot of fetch specifications are written like this :

String pid="806000022"; //for the example, in real life this value is read from a text file. new EOFetchSpecification("Patient", EOQualifier.qualifierWithQualifierFormat("nip = " + pid, null), null);

With debugging on, this gives the following query which returns 0 rows : <SELECT (...) FROM Pat_Patient t0 WHERE t0.nip = ?" withBindings: 1:8.06E8(nip)>

Now, when using an Integer instead a String :
String pid=":806000022";
new EOFetchSpecification("Patient", EOQualifier.qualifierWithQualifierFormat("nip = " + Integer.valueOf(pid), null), null);

Gives the following query which returns the awaited rows.
<SELECT (...) FROM Pat_Patient t0 WHERE t0.nip = ?" withBindings: 1:806000022(nip)>

Any idea which could avoid me rewriting the 200+ fetch specifications of this app ?


I can't think of any. This is yet another reason to never use qualifierWithQualifierFormat. If you had used EOKeyValueQualifier, you would not have this problem. Just say "no" to magic strings.

Chuck

--

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