Thread: executeQuery returns postgresql.stat.result

executeQuery returns postgresql.stat.result

From
"Nico"
Date:
Hi,
When I try
        try
        {
            sql="select * from \"qryMonthsYears\"";
            java.sql.ResultSet
resultset=getQuery(sql,connection.createStatement());
        }
        catch(java.sql.SQLException fout)
        {
            java.sql.SQLException foutje=fout.getNextException();
            out.println("<br>SQL fout: "+fout.getMessage());
            while(foutje!=null)
            {
                out.print("<br>Ingebedde fout: "+foutje.getMessage());
                foutje=fout.getNextException();
            }
        }

I get the following exception when I try this:
 Batch entry 0 select * from "qryMonthsYears"; was aborted. Call
getNextException() to see the cause.
When I call getNextException(), I get the following result:
postgresql.stat.result
and stays in the loop.
Here is the code for the method getQuery:
        ResultSet resultset;
        if(strstatement.startsWith("SELECT"))
        {
            resultset=statement.executeQuery(strstatement);
            if(resultset==null)
                throw new SQLException("Resultset is null at getQuery().");
            if(resultset.getWarnings()==null)
                return resultset;
            else
            {
                String errmessage="";
                while(resultset.getWarnings().getErrorCode()!=0)
                {
                    errmessage+=resultset.getWarnings().getMessage()+"\n";
                    resultset.getWarnings().getNextException();
                }
                throw new SQLException("SQL Fout getQuery(): "+errmessage);
            }
        }
        else
        {
            connection.setAutoCommit(false);
            String [] sql=strstatement.split(";");
            for(int teller=0;teller<sql.length;teller++)
                statement.addBatch(sql[teller]+";");
            statement.executeBatch();
            connection.commit();
            connection.setAutoCommit(true);
            return null;
        }

Please help!

Nico.



Re: executeQuery returns postgresql.stat.result

From
Kris Jurka
Date:

On Sun, 1 May 2005, Nico wrote:

>             sql="select * from \"qryMonthsYears\"";
>...
>         if(strstatement.startsWith("SELECT"))
>...
>         else
>         {
>             connection.setAutoCommit(false);
>             String [] sql=strstatement.split(";");
>             for(int teller=0;teller<sql.length;teller++)
>                 statement.addBatch(sql[teller]+";");
>             statement.executeBatch();

Your own parsing logic is busted and is trying to execute a select in a
batch statement, which is not legal.

Kris Jurka

Re: executeQuery returns postgresql.stat.result

From
"Nico"
Date:
The batch statement is ONLY used in case of an update, insert or delete
command.
When a select command is used, there is no batch used, as you can see in my
code.

Nico.

"Kris Jurka" <books@ejurka.com> schreef in bericht
news:Pine.BSO.4.56.0505011230450.1107@leary.csoft.net...
>
>
> On Sun, 1 May 2005, Nico wrote:
>
>>             sql="select * from \"qryMonthsYears\"";
>>...
>>         if(strstatement.startsWith("SELECT"))
>>...
>>         else
>>         {
>>             connection.setAutoCommit(false);
>>             String [] sql=strstatement.split(";");
>>             for(int teller=0;teller<sql.length;teller++)
>>                 statement.addBatch(sql[teller]+";");
>>             statement.executeBatch();
>
> Your own parsing logic is busted and is trying to execute a select in a
> batch statement, which is not legal.
>
> Kris Jurka
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
>      subscribe-nomail command to majordomo@postgresql.org so that your
>      message can get through to the mailing list cleanly
>



Re: executeQuery returns postgresql.stat.result

From
Kris Jurka
Date:

On Sun, 1 May 2005, Nico wrote:

> The batch statement is ONLY used in case of an update, insert or delete
> command. When a select command is used, there is no batch used, as you
> can see in my code.

No, I can't see that.  You have a case mismatch between your sql and your
test.  A simple examination of the stacktrace from this error would
clearly show the wrong code being called.

Kris Jurka


Re: executeQuery returns postgresql.stat.result

From
"Nico"
Date:
I noticed it. Because the exception was captured, it didn't show a
stacktrace.
I solved it and it works fine now. Thanks.

Nico.

"Kris Jurka" <books@ejurka.com> schreef in bericht
news:Pine.BSO.4.56.0505011302210.22827@leary.csoft.net...
>
>
> On Sun, 1 May 2005, Nico wrote:
>
>> The batch statement is ONLY used in case of an update, insert or delete
>> command. When a select command is used, there is no batch used, as you
>> can see in my code.
>
> No, I can't see that.  You have a case mismatch between your sql and your
> test.  A simple examination of the stacktrace from this error would
> clearly show the wrong code being called.
>
> Kris Jurka
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>    (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
>