I tried it now and with java.sql.Date it only saves the Date, with
java.sql.Timestamp it also saves the Time. This on Oracle.


Roland Ribi


> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, March 17, 2004 11:00 AM
> To: [EMAIL PROTECTED]
> Subject: RE: mssql: sqlexception
> 
> 
> 
>  Well, that makes sense. I used Torque to generate my DAOs 
> and since it
> worked with MySQL I made the assumption the mapping should be ok.
> 
>   Thank you, I will try this.
> 
> Pedro Salgado
> 
> > I'm using MSSQL successfully with java.sql.Timestamp in my classes.
> >
> > Using java.sql.Date worked with MSSQL for me but only the 
> date was saved
> > not the time as well - the time was always set to midday.
> >
> >
> >
> > -----Original Message-----
> > From: Ribi Roland [mailto:[EMAIL PROTECTED]
> > Sent: 17 March 2004 06:43
> > To: 'OJB Users List'
> > Subject: RE: mssql: sqlexception
> >
> > 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.
> >
> > 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]
> 
> 
> 
> 
> ---------------------------------------------------------------------
> 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]

Reply via email to