> Hi > > I had also a problem with java.util.Date on a Oracle DB. I had to change > the types in my classes to java.sql.Date and it works fine now. > > An other way could be a conversion-class for java.util.Date (like > Integer2IntegerFieldConversion) which creates a java.sql.Date from > java.util.Date. > > Let me now if it solves your problem. >
Thank you Roland, I will try this and send a reply to the newsletter. Pedro Salgado > Roland Ribi > > >> -----Original Message----- >> From: Pedro Salgado [mailto:[EMAIL PROTECTED] >> Sent: Thursday, January 01, 1970 2:47 AM >> To: OJB Users List >> Subject: mssql: sqlexception >> >> >> >> For several reasons, I have been using a OJB/MySQL >> development platform >> and everything was going ok. The problem was when I chose to >> test the same >> application with a OJB/MSSQL platform. >> >> >> Apart of some minor changes, I made it all work except for >> a class (the >> source and OJB description is below) that has a >> TIMESTAMP/DATETIME mapping >> and that also could be NULL (also tried with NOT NULL <=> >> nullable="false" >> and didn't work either). >> I tried Google and it seems a MSSQL JDBC driver bug (don't >> know if it >> could be a bug in OJB) but I wonder if anyone has came across >> with this >> problem and solved this or found a way around (please don't >> tell me I have >> to store the day-month-year on 3 database fields for each >> date :( or change >> it to a char/varchar field). >> >> Below is the error (log file) the DAO, OJB descriptor and >> SQL for the >> class in question. >> >> >> All help/ideas are welcome, >> >> >> Pedro Salgado >> >> >> >> --- LOG FILE >> >> 12:46:34,503 - DEBUG >> org.apache.ojb.broker.accesslayer.StatementManager - >> closeResources was called >> >> >> 12:46:34,503 - DEBUG >> org.apache.ojb.broker.accesslayer.JdbcAccessImpl - >> executeInsert : [EMAIL PROTECTED] >> >> >> 12:46:34,503 - DEBUG >> org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl >> - SQL:INSERT >> INTO REVISIONS >> (id,document,title,edition,date_implementation,date_issued,dat >> e_approval,dat >> e_approval_qa,date_authorization,date_cancelled,date_deadline, >> originator,app >> rover,approver_qa,authorizer,canceller,obs,state,sys_extension) VALUES >> (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) >> >> >> 12:46:34,519 - ERROR >> org.apache.ojb.broker.accesslayer.JdbcAccessImpl - >> SQLException during the execution of the insert (for a >> pkg.pkg.dao.Revision): [Microsoft][SQLServer 2000 Driver for >> JDBC]Unable to >> determine the type of the specified object. >> >> >> java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for >> JDBC]Unable to >> determine the type of the specified object. >> at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown >> Source) >> at >> com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source) >> at com.microsoft.jdbc.base.BasePreparedStatement.setObject(Unknown >> Source) >> at >> org.apache.ojb.broker.platforms.PlatformDefaultImpl.setObjectF >> orStatement(Un >> known Source) >> at >> org.apache.ojb.broker.accesslayer.StatementManager.bindInsert(Unknown >> Source) >> at >> org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeInsert(Unknown >> Source) >> at >> org.apache.ojb.broker.core.PersistenceBrokerImpl.storeToDb(Unknown >> Source) >> >> >> --- Java class >> (Date => java.util.Date) >> >> private int id = 0; >> private int document = 0; >> private String Title = null; >> private String Edition = null; >> private Date dateImplementation = null; >> private Date dateIssued = null; >> private Date dateApproval = null; >> private Date dateApprovalQA = null; >> private Date dateAuthorization = null; >> private Date dateCancelled = null; >> private Date dateDeadline = null; >> private int originator = 0; >> private int approver = 0; >> private int approverQA = 0; >> private int authorizer = 0; >> private int canceller = 0; >> private String comment = null; >> private int State = 0; >> private String fileExtension = null; >> >> >> >> --- MSSQL SQL >> >> >> IF EXISTS (SELECT 1 FROM sysobjects WHERE type ='RI' AND >> name='REVISIONS_FK_1') >> ALTER TABLE REVISIONS DROP CONSTRAINT REVISIONS_FK_1; >> IF EXISTS (SELECT 1 FROM sysobjects WHERE type = 'U' AND name >> = 'REVISIONS') >> BEGIN >> DECLARE @reftable_7 nvarchar(60), @constraintname_7 nvarchar(60) >> DECLARE refcursor CURSOR FOR >> select reftables.name tablename, cons.name constraintname >> from sysobjects tables, >> sysobjects reftables, >> sysobjects cons, >> sysreferences ref >> where tables.id = ref.rkeyid >> and cons.id = ref.constid >> and reftables.id = ref.fkeyid >> and tables.name = 'REVISIONS' >> OPEN refcursor >> FETCH NEXT from refcursor into @reftable_7, @constraintname_7 >> while @@FETCH_STATUS = 0 >> BEGIN >> exec ('alter table '[EMAIL PROTECTED]' drop constraint >> '[EMAIL PROTECTED]) >> FETCH NEXT from refcursor into @reftable_7, @constraintname_7 >> END >> CLOSE refcursor >> DEALLOCATE refcursor >> DROP TABLE REVISIONS >> END >> >> >> CREATE TABLE REVISIONS >> ( >> id INT NOT NULL, >> document INT NOT NULL, >> title VARCHAR (200) NOT NULL, >> edition CHAR (9) NULL, >> date_implementation DATETIME NULL, >> date_issued DATETIME NULL, >> date_approval DATETIME NULL, >> date_approval_qa DATETIME NULL, >> date_authorization DATETIME NULL, >> date_cancelled DATETIME NULL, >> date_deadline DATETIME NULL, >> originator INT NULL, >> approver INT NULL, >> approver_qa INT NULL, >> authorizer INT NULL, >> canceller INT NULL, >> obs VARCHAR (200) NULL, >> state INT NOT NULL, >> sys_extension CHAR (4) NULL, >> >> CONSTRAINT REVISIONS_PK PRIMARY KEY(id) >> >> ); >> >> >> >> >> >> >> --- OJB class descriptor >> >> >> <class-descriptor >> class="pkg.pkg.dao.Revision" >> table="REVISIONS" >> > >> >> <field-descriptor >> id="1" >> name="id" >> column="id" >> jdbc-type="INTEGER" >> nullable="false" >> primarykey="true" >> autoincrement="true" /> >> >> >> <field-descriptor >> id="2" >> name="document" >> column="document" >> jdbc-type="INTEGER" >> nullable="false" /> >> >> >> <field-descriptor >> id="3" >> name="Title" >> column="title" >> jdbc-type="VARCHAR" >> nullable="false" /> >> >> >> <field-descriptor >> id="4" >> name="Edition" >> column="edition" >> jdbc-type="CHAR" /> >> >> >> <field-descriptor >> id="5" >> name="dateImplementation" >> column="date_implementation" >> jdbc-type="TIMESTAMP" /> >> >> >> <field-descriptor >> id="6" >> name="dateIssued" >> column="date_issued" >> jdbc-type="TIMESTAMP" /> >> >> >> <field-descriptor >> id="7" >> name="dateApproval" >> column="date_approval" >> jdbc-type="TIMESTAMP" /> >> >> >> <field-descriptor >> id="8" >> name="dateApprovalQA" >> column="date_approval_qa" >> jdbc-type="TIMESTAMP" /> >> >> >> <field-descriptor >> id="9" >> name="dateAuthorization" >> column="date_authorization" >> jdbc-type="TIMESTAMP"/> >> >> >> <field-descriptor >> id="10" >> name="dateCancelled" >> column="date_cancelled" >> jdbc-type="TIMESTAMP" /> >> >> >> <field-descriptor >> id="11" >> name="dateDeadline" >> column="date_deadline" >> jdbc-type="TIMESTAMP" /> >> >> >> <field-descriptor >> id="12" >> name="originator" >> column="originator" >> jdbc-type="INTEGER" /> >> >> >> >> <field-descriptor >> id="13" >> name="approver" >> column="approver" >> jdbc-type="INTEGER "/> >> >> >> <field-descriptor >> id="14" >> name="approverQA" >> column="approver_qa" >> jdbc-type="INTEGER" /> >> >> >> <field-descriptor >> id="15" >> name="authorizer" >> column="authorizer" >> jdbc-type="INTEGER" /> >> >> >> >> <field-descriptor >> id="16" >> name="canceller" >> column="canceller" >> jdbc-type="INTEGER" /> >> >> >> <field-descriptor >> id="17" >> name="comment" >> column="obs" >> jdbc-type="VARCHAR" /> >> >> >> <field-descriptor >> id="18" >> name="State" >> column="state" >> jdbc-type="INTEGER" >> nullable="false" /> >> >> >> <field-descriptor >> id="19" >> name="fileExtension" >> column="sys_extension" >> jdbc-type="CHAR" /> >> >> </class-descriptor> >> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> > > --------------------------------------------------------------------- To > unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
