Changeset 158

Show
Ignore:
Timestamp:
11/18/07 17:26:55 (1 year ago)
Author:
chris
Message:

Check for proper handling of 0000-00-00 dates in change tracking.

Remove dependency on Lex class.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • lex/trunk/test/com/qwirx/db/SqlDatabaseTest.java

    r145 r158  
    1818import com.qwirx.db.sql.SqlChange; 
    1919import com.qwirx.db.sql.SqlDatabase; 
    20 import com.qwirx.lex.Lex; 
    2120 
    2221/** 
     
    7170                                // "t_flt decimal(10,2)," + // not supported by JDBC? 
    7271                                "t_dat date, "+ 
    73                                 "t_dtm datetime"+ 
     72                                "t_dtm datetime, "+ 
     73                "t_dat2 DATE NOT NULL"+ 
    7474                                ")"); 
    7575        }                
     
    106106                        ChangedValue cv = (ChangedValue)n; 
    107107                        String colName  = cv.getName(); 
    108                         String curValue = rs.getString(colName); 
    109                         String expValue = cv.getNewValue(); 
     108                        String curValue = null; 
     109             
     110                        try 
     111            { 
     112                curValue = rs.getString(colName); 
     113            } 
     114            catch (SQLException e) 
     115            { 
     116                if (e.getMessage().equals("Value '0000-00-00' " + 
     117                        "can not be represented as java.sql.Date")) 
     118                { 
     119                    // do nothing 
     120                } 
     121                else 
     122                { 
     123                    throw e; 
     124                } 
     125            } 
     126 
     127            String expValue = cv.getNewValue(); 
    110128                        assertEquals("Column has wrong value", expValue, curValue); 
    111129                } 
     
    179197                ch.setString("t_dat", "1979-01-07"); // happy birthday 
    180198                ch.setString("t_dtm", "1979-01-07 06:35:00"); 
     199        ch.setString("t_dat2", "0000-00-00"); // crashes some versions 
     200        // of mysql jdbc when getting column values 
    181201                ch.execute(); 
    182202                getChangeTypeAndId(ch.getId());