Sybase-Web Objects connectivity issues

- WebObjects; known issue where webobjects will issue an implicit
select * from table when queries are run, even if where clauses
are issued.  Problematic when you have very large tables, complex
joins because of table scans, and if you have blobs (text or image
fields).  Not really a known solution for dealing with large
tables; to get around the blob/text field image, re-design databases
to have text fields in 1-1 surrogate tables hanging off the target
tables of WebObjects application 

- EOModeller; note; if you believe you're implementing Referential Integrith
with EO-Modeller, you're mistaken.   EOModeller only executes sp_primarykey
and sp_foreignkey statements, and does not create constraints.  Any
RI must be specifically created after wards.

Sybase specific:
- you need the Sybase client libraries on the box(es) running WebObjects
- there are at least 4 ways to generate unique primary key values,
but the easiest is to use a single int column and allow the EOModeler
tool to set it up for you.
For Sybase it uses a table to keep track of the primary key value
for all tables and generates a stored proc (standard way of keeping
and integrating surrogate keys...)

From John Crissey (jcrissey@niaid.nih.gov)
- Conversion difficulties; easier tool to work with when doing
new development, as opposed to converting from a two-tier client
server environment (more of a general comment on Client-side tools.

From Kent Conlan (kconlan@apple.com)
In general when working with WebObjects database frameworks (EOF)
there are a few things that make life easier for the developers:
- all tables should have unique primary key(s)
- all primary keys should not allow null
- all primary keys should not allow a zero value
(this can be overcome with extra code if there's no way around it)

From Rusty Johnson (russell_johnson@fanniemae.com)
- The WebObjects SybaseEOAdaptor seems to use a default
value of 0.0 when doing queries on a java BigDecimal field that is
mapped to a numeric, or money field in the EOModeler.  This causes a
problem if the numeric field is null in the database because then no
rows are selected.

- The second problem was even stranger.  We have those three tables Loan,
LoanRollUp, and LoanRollUpRollUp.  Cheryl wrote a stored procedure to to
roll up the data from the Loan to the LoanRollUp table.  So first my
code creates the records in the Loan table.  Then I call her stored
procedure which creates records in the LoanRollUp table.  Then I read
the rows from the LoanRollUp table back into WebObjects and modify the
records and try and save the changes back to the database.  The problem
is that the changes are not saved.  Then we check the method
editingContext.hasChanges() and this returned false. So the workaround
was to insert an eo-object into the editingContext and then delete the
same object  from the editingContext.  This makes the method
editingContext.hasChanges() to return true (it now knows that changes
have been made).  Then the changes would be saved to the database.

---
Oracle specific-issues
- WO clears out trailing spaces in Oracle's varchar datatype when reading
in ... but not when writing out.  Therefore updates fail in the database
and you actually have to count the number of characters in the string 
when doing updates.