Hem ...
You're right Phil, I have problem with my previous code also.
This one seems to work better ;-)
public void close(Object sqldoc) throws SQLException {
if (DEBUG)
System.out.println("Entering XConnection.close(" + sqldoc + ")");
DTMNodeIterator dtmIter = (DTMNodeIterator)sqldoc;
XNodeSet xNS = (XNodeSet)dtmIter.getDTMIterator();
OneStepIterator iter = (OneStepIterator)xNS.getContainedIter();
DTMManager aDTMManager = (DTMManager)iter.getDTMManager();
SQLDocument sqlDoc = (SQLDocument)aDTMManager.getDTM(xNS.nextNode());
sqlDoc.close();
}
--
Didier Moraine
Winterthur-Europe Assurances
-----Original Message-----
From: Phil Friedman [mailto:[EMAIL PROTECTED]
Sent: vendredi 20 ao�t 2004 22:31
To: [EMAIL PROTECTED]
Subject: [SPAM] - Re: SQL Extension, how to close just one query? -
Email has different SMTP TO: and MIME TO: fields in the email addresses
Thanks, but this still does not work for me, maybe It is the nested queries.
I haven't the time to set up to debug this. I'm reverting to my hack which
always closes the most recently used connection with:
public void close( Object sqldoc )throws SQLException
{
int size = m_OpenSQLDocuments.size();
Object o = m_OpenSQLDocuments.elementAt(size-1);
((SQLDocument)o).close();
m_OpenSQLDocuments.removeElementAt(size-1);
}
Yuk! :(
Regards, Phil Friedman - Terralink Software - 1-207-772-6500 x101
Moraine Didier wrote:
> [Trying to join the thread]
>
> Hello,
>
> We have the same problem and this is what we tried today :
>
> public void close( Object sqldoc ) throws SQLException {
> if (DEBUG)
> System.out.println("Entering XConnection.close(" + sqldoc + ")");
>
> if (sqldoc instanceof DTMNodeIterator) {
>
> DTMNodeIterator dtmIter = (DTMNodeIterator) sqldoc;
>
> if (dtmIter.getDTMIterator() instanceof XNodeSet) {
>
> XNodeSet xNS = (XNodeSet) dtmIter.getDTMIterator();
>
> if (xNS.getContainedIter() instanceof OneStepIterator) {
>
> OneStepIterator iter = (OneStepIterator)
> xNS.getContainedIter();
> DTMManager dtmMgr = (DTMManager) iter.getDTMManager();
>
> //Finally :-)
> if (dtmMgr.getDTM(xNS.nextNode()) instanceof SQLDocument)
{
>
> sqldoc = (SQLDocument) dtmMgr.getDTM(xNS.nextNode());
>
> int size = m_OpenSQLDocuments.size();
>
> for (int x = 0; x < size; x++) {
> SQLDocument d = (SQLDocument)
> m_OpenSQLDocuments.elementAt(x);
> if (d == sqldoc) {
> d.close();
> m_OpenSQLDocuments.removeElementAt(x);
> }
> }
> } else {
> throw new RuntimeException(
> "Class cast exception
XConnection.close(Object)
> !");
> }
> } else {
> throw new RuntimeException(
> "Class cast exception XConnection.close(Object)
!");
> }
> } else {
> throw new RuntimeException(
> "Class cast exception XConnection.close(Object) !");
> }
> }
> }
>
> We are now able to close a single SQLDocument and put back the connection
in
> the pool
> with :
>
> <xsl:variable name="Qy" select="sql:query($DbCon, $SQL)"/>
> ...
> <xsl:value-of select="sql:close($DbCon, $Qy)"/>
>
> Regards,
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
________________________________________________________________________________
Disclaimer - Winterthur Europe Assurances - Avenue des Arts/Kunstlaan 56 - 1000
Brussels - Belgium.
This e-mail is intended solely for the above-mentioned recipient and it may contain
confidential or privileged information. If you have
received it in error, please notify the sender immediately and delete the e-mail. You
must not copy, distribute, disclose or take any
action in reliance on it.
This e-mail message and any attached files have been scanned for the presence of
computer viruses. However, you are advised that
you open any attachments at your own risk.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]