Another attempt ...
Do you think the AccessMode could be the problem ? I just received the SQL
statement with the getSQL() method of the OQLQueryImpl. It shows the
following:
SELECT .... FROM EDILBEPO WHERE (EDILBEPO.EPFINR = ?1 AND EDILBEPO.EPAUFN =
?2) FOR UPDATE
Maybe I need a unique key in my table for the FOR UPDATE ? I don't have a
unique key. Maybe this is the reason why I can only fetch the first record
of the recordset ?
BR,
Konni
Ralf Joachim-2 wrote:
>
> Hi Konni,
>
> I use Castor myself in quite some projects and have never seen these
> kind of problem wether on mysql, postgresql, sapdb, hsql nor oracle. As
> far as I know it is the same with Werner how have also tested Castor
> with some other database engines. Therefore his and my guess if it may
> be related to the database driver. Another option would be a problem in
> the database specific part of Castor. Having said that I never needed to
> pass scrollable parameter to the query.execute(...) method as it always
> worked out of the box.
>
> My problem is that I do not have experience nor access to db/2
> especially not on AS400. So I am not able to debug myself to find out
> the reason of the problem.
>
> To your questions. SimpleQueryExecutor is used internally to execute
> simple queries in some situations. OQLQuery is an interface and
> OQLQueryImpl its only implementation.
>
> Have you tried to load the objects with db.load(...) as a test if Castor
> can load the objects?
>
> Regards
> Ralf
>
>
> Konni schrieb:
>> I'm using the latest version of the JDBC driver for AS400. I just
>> downloaded
>> it from jt400.sourceforge.net. But I don't know any details about the
>> JDBC
>> specs of this driver. But I already used this driver with normal JDBC
>> connections and the resultsets are scrollable by default. So I don't know
>> why there is a problem between this driver and Castor JDO. Are there any
>> workarounds ? What about OQLQueryImpl or SimpleQueryExecutor ? What is
>> the
>> difference to OQLQuery ?
>>
>> BR,
>> Konni
>>
>>
>>
>>
>> Werner Guttmann wrote:
>>> Could this actually be a problem of the JDBC driver for DB2 on AS400 ?
>>> What version of the JDBC driver are you using for DB2, and what version
>>> of the JDBC spec does it actually implement ?
>>>
>>> Werner
>>>
>>> Konni wrote:
>>>> I have some new information.
>>>>
>>>> I coded the result.size() after the first result.next() operation. Now
>>>> I
>>>> get
>>>> the correct size of the resultset (3 records). But when I code a
>>>> result.hasMore() directly after the first result.next() then I get
>>>> false.
>>>>
>>>> I think this means that the resultset doesn't seem to be scrollable. I
>>>> already tried the OQLQueryImpl with the option true, but this also
>>>> doesn't
>>>> work.
>>>>
>>>> Any thoughts ?
>>>>
>>>> BR,
>>>> Konni
>>>>
>>>>
>>>>
>>>> Konni wrote:
>>>>> ooopps, the rest of my reply hes been ignored. Here is my mapping file
>>>>> again:
>>>>>
>>>>> <mapping>
>>>>> <description>Mapping zur DATEI EDILBEPO</description>
>>>>>
>>>>> <class name="bestellung.EDILBEPO" identity="AUFN">
>>>>> <map-to table="EDILBEPO" />
>>>>>
>>>>> <field name="FINR" type="big-decimal" >
>>>>> <sql name="EPFINR" type="numeric"/>
>>>>> </field>
>>>>> <field name="AUFN" type="big-decimal" >
>>>>> <sql name="EPAUFN" type="numeric"/>
>>>>> </field>
>>>>> <field name="POS" type="big-decimal" >
>>>>> <sql name="EPPOS" type="numeric"/>
>>>>> </field>
>>>>> <field name="BMENG" type="big-decimal" >
>>>>> <sql name="EPBMENG" type="numeric"/>
>>>>> </field>
>>>>> <field name="WDATU" type="big-decimal" >
>>>>> <sql name="EPWDATU" type="numeric"/>
>>>>> </field>
>>>>> <field name="ARTND" type="string" >
>>>>> <sql name="EPARTND" type="char"/>
>>>>> </field>
>>>>> <field name="BEZGD" type="string" >
>>>>> <sql name="EPBEZGD" type="char"/>
>>>>> </field>
>>>>> <field name="ARTNL" type="string" >
>>>>> <sql name="EPARTNL" type="char"/>
>>>>> </field>
>>>>> <field name="BEZGL" type="string" >
>>>>> <sql name="EPBEZGL" type="char"/>
>>>>> </field>
>>>>> <field name="PTXT" type="string" >
>>>>> <sql name="EPPTXT" type="char"/>
>>>>> </field>
>>>>>
>>>>> </class>
>>>>>
>>>>> </mapping>
>>>>>
>>>>>
>>>>> Konni wrote:
>>>>>> Here is my answer:
>>>>>>
>>>>>> which version of Castor do you use?
>>>>>> castor-1.1.2.1
>>>>>>
>>>>>> which database, database version, driver and driver version do you
>>>>>> use?
>>>>>> here is my jdo_config.xml with the requested information:
>>>>>>
>>>>>> <?xml version="1.0"?>
>>>>>> <jdo-conf name="Castor JDO Konfiguration">
>>>>>>
>>>>>> <database name="DENTAL" engine="db2">
>>>>>> <driver class-name="com.ibm.as400.access.AS400JDBCDriver"
>>>>>> url="jdbc:as400://server/lib">
>>>>>> user"/>
>>>>>> pwd"/>
>>>>>> </driver>
>>>>>> <mapping href="Mapping_EDILBEKO.xml"/>
>>>>>> <mapping href="Mapping_EDILBEPO.xml"/>
>>>>>> </database>
>>>>>>
>>>>>> <transaction-demarcation mode="local"/>
>>>>>> </jdo-conf>
>>>>>>
>>>>>>
>>>>>> do your EDILBEPO class have a identity defined in mapping?
>>>>>> here is the mapping:
>>>>>>
>>>>>> <mapping>
>>>>>> <description>Mapping zur DATEI EDILBEPO</description>
>>>>>>
>>>>>> <class name="bestellung.EDILBEPO" identity="AUFN">
>>>>>> <map-to table="EDILBEPO" />
>>>>>>
>>>>>> <field name="FINR" type="big-decimal" >
>>>>>> <sql name="EPFINR" type="numeric"/>
>>>>>> </field>
>>>>>> <field name="AUFN" type="big-decimal" >
>>>>>> <sql name="EPAUFN" type="numeric"/>
>>>>>> </field>
>>>>>> <field name="POS" type="big-decimal" >
>>>>>> <sql name="EPPOS" type="numeric"/>
>>>>>> </field>
>>>>>> <field name="BMENG" type="big-decimal" >
>>>>>> <sql name="EPBMENG" type="numeric"/>
>>>>>> </field>
>>>>>> <field name="WDATU" type="big-decimal" >
>>>>>> <sql name="EPWDATU" type="numeric"/>
>>>>>> </field>
>>>>>> <field name="ARTND" type="string" >
>>>>>> <sql name="EPARTND" type="char"/>
>>>>>> </field>
>>>>>> <field name="BEZGD" type="string" >
>>>>>> <sql name="EPBEZGD" type="char"/>
>>>>>> </field>
>>>>>> <field name="ARTNL" type="string" >
>>>>>> <sql name="EPARTNL" type="char"/>
>>>>>> </field>
>>>>>> <field name="BEZGL" type="string" >
>>>>>> <sql name="EPBEZGL" type="char"/>
>>>>>> </field>
>>>>>> <field name="PTXT" type="string" >
>>>>>> <sql name="EPPTXT" type="char"/>
>>>>>> </field>
>>>>>>
>>>>>> </class>
>>>>>>
>>>>>> </mapping>
>>>>>>
>>>>>> do you use Castor caching for EDILBEPO?
>>>>>> no
>>>>>>
>>>>>> does EDILBEPO implement Timestampable interface?
>>>>>> no
>>>>>>
>>>>>>
>>>>>>
>>>>>> Ralf Joachim-2 wrote:
>>>>>>> Hi Konni,
>>>>>>>
>>>>>>> I've never seen that problem. Please give us some more info to get
>>>>>>> an
>>>>>>> idea of what may be going wrong.
>>>>>>>
>>>>>>> which version of Castor do you use?
>>>>>>> which database, database version, driver and driver version do you
>>>>>>> use?
>>>>>>> do your EDILBEPO class have a identity defined in mapping?
>>>>>>> do you use Castor caching for EDILBEPO?
>>>>>>> does EDILBEPO implement Timestampable interface?
>>>>>>>
>>>>>>> Regards
>>>>>>> Ralf
>>>>>>>
>>>>>>> Konni schrieb:
>>>>>>>> I have 3 records with the same FINR and AUFN in my table EDILBEPO.
>>>>>>>> When
>>>>>>>> I
>>>>>>>> read the resultset, I only get the first record. What could be
>>>>>>>> wrong
>>>>>>>> ?
>>>>>>>> The
>>>>>>>> result_p.size() ended in a PersistenceException: Cursor not in a
>>>>>>>> valid
>>>>>>>> state.
>>>>>>>>
>>>>>>>> Here is the code:
>>>>>>>>
>>>>>>>>
>>>>>>>> // Positionen verarbeiten
>>>>>>>> oql_p = db.getOQLQuery("SELECT P FROM
>>>>>>>> bestellung.EDILBEPO
>>>>>>>> P
>>>>>>>> WHERE P.FINR=$1 AND P.AUFN=$2");
>>>>>>>> oql_p.bind(new BigDecimal(finr));
>>>>>>>> oql_p.bind(new BigDecimal(aufnr));
>>>>>>>>
>>>>>>>> result_p = oql_p.execute();
>>>>>>>> // System.out.println("Anzahl Positionen: " +
>>>>>>>> result_p.size());
>>>>>>>> while (result_p.hasMore()) {
>>>>>>>> bepo = (EDILBEPO) result_p.next();
>>>>>>>> eppos = bepo.getPOS();
>>>>>>>> epbmeng = bepo.getBMENG();
>>>>>>>> epwdatu = bepo.getWDATU();
>>>>>>>> epartnd = bepo.getARTND();
>>>>>>>> epbezgd = bepo.getBEZGD();
>>>>>>>> epartnl = bepo.getARTNL();
>>>>>>>> epbezgl = bepo.getBEZGL();
>>>>>>>> epptxt = bepo.getPTXT();
>>>>>>>> .
>>>>>>>> .
>>>>>>>> .
>>>>>>>> }
>>>>>>> --
>>>>>>>
>>>>>>> Syscon Ingenieurbüro für Meß- und Datentechnik GmbH
>>>>>>> Ralf Joachim
>>>>>>> Raiffeisenstraße 11
>>>>>>> 72127 Kusterdingen
>>>>>>> Germany
>>>>>>>
>>>>>>> Tel. +49 7071 3690 52
>>>>>>> Mobil: +49 173 9630135
>>>>>>> Fax +49 7071 3690 98
>>>>>>>
>>>>>>> Internet: www.syscon.eu
>>>>>>> E-Mail: [EMAIL PROTECTED]
>>>>>>>
>>>>>>> Sitz der Gesellschaft: D-72127 Kusterdingen
>>>>>>> Registereintrag: Amtsgericht Stuttgart, HRB 382295
>>>>>>> Geschäftsleitung: Jens Joachim, Ralf Joachim
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe from this list please visit:
>>>>>>>
>>>>>>> http://xircles.codehaus.org/manage_email
>>>>>>>
>>>>>>>
>>>>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe from this list please visit:
>>>
>>> http://xircles.codehaus.org/manage_email
>>>
>>>
>>>
>>
>
> --
>
> Syscon Ingenieurbüro für Meß- und Datentechnik GmbH
> Ralf Joachim
> Raiffeisenstraße 11
> 72127 Kusterdingen
> Germany
>
> Tel. +49 7071 3690 52
> Mobil: +49 173 9630135
> Fax +49 7071 3690 98
>
> Internet: www.syscon.eu
> E-Mail: [EMAIL PROTECTED]
>
> Sitz der Gesellschaft: D-72127 Kusterdingen
> Registereintrag: Amtsgericht Stuttgart, HRB 382295
> Geschäftsleitung: Jens Joachim, Ralf Joachim
>
> ---------------------------------------------------------------------
> To unsubscribe from this list please visit:
>
> http://xircles.codehaus.org/manage_email
>
>
>
--
View this message in context:
http://www.nabble.com/Only-one-result-from-resultset-tf4645829.html#a13290681
Sent from the Castor - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email