It worked :)

  With MSSQL/java.sql.Date it stores data in this format 2004-03-17
00:00:00.000.

  I haven't tried with java.sql.Timestamp (minutes/seconds/etc are not
relevant for me) but I am sure that would do the trick for MSSQL also
(like Roland say it would do for Oracle).
  One other thing, I am using Torque to generate my DAOs and it is simpler
to change the java.util.Date import on the DAO template to java.sql.Date
than to change the model by replacing all Date by Timestamp (each time
you change the model, one has to make a search-replace operation on the
package). Maybe there is an easier way but... I only understand the
Torque's velocity templates.


  To Roland and Brendan, thank you very much for your help,

Pedro Salgado

> 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]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to