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