odd behaviour of prepared statement

From: kevin(at)mtel(dot)co(dot)uk (kevin)
To: pgsql-jdbc(at)postgresql(dot)org
Subject: odd behaviour of prepared statement
Date: 2003-08-18 15:39:34
Message-ID: 6675f17.0308180739.55448cc1@posting.google.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

this piece of code is the second PreparedStatement in a bean function.
All code before it seems to work perfectly. no amount of tinkering
with this one will avoid an SQLException "parser: parse error at end
of input" on the executeQuery();
The code executes fine in psql.
db is 7.3.2. java is sun hotspot 1.41.

Any ideas why the code fails parsing?

<code>
String strSQL;
String strSQL_SalesAndReturns;
PreparedStatement pstmtSR = null;
ResultSet results = null;

String strStockid=null;
String strGroup=null;
String strDesc=null;
String strType=null;
int iSales=0;
int iReturns=0;

String strSQL_SalesAndReturns =
"SELECT stock, " +
" p.description, " +
" p.stockgroup, " +
" s.saleqty, " +
" r.returned " +
" FROM " +
" (SELECT stockid as stock, " +
" sum(saleqty) as saleqty " +
" FROM dailysales s " +
" WHERE s.saledate = '2003-08-22' " +
" AND s.custid = ' 5' " +
" GROUP BY s.stockid ) AS s " +
" FULL OUTER JOIN " +
" (SELECT stock, " +
" ordercurrent as returned " +
" FROM orderlines ol " +
" WHERE ol.theorder = 'A 5 12003-08-15' " +
" AND ol.TYPE='R') as r " +
" USING (stock) " +
" INNER JOIN stockitems p ON (p.id=r.stock) " +
" WHERE p.status='N' " +
" ORDER BY ";

strSQL = strSQL_SalesAndReturns;
pstmtSR = livedb.prepareStatement(strSQL);

// global character switch for grouping
switch(cSelectOrder) {
case cDESCRIPTION_SEQ : strSQL = strSQL +
"p.description;";
break;
case cGROUP_SEQ : strSQL = strSQL +
"p.stockgroup,p.description;";
break;
case cCODE_SEQ : strSQL = strSQL + "stock;";
break;
default : strSQL = strSQL +
"p.description;";
break;
}

results = pstmtSR.executeQuery();

while( results.next() ) {
strStockid = results.getString(1);
strDesc = results.getString(2);
strGroup = results.getString(3);
iSales = results.getInt(4);
iReturns = results.getInt(5);
... code to process resultset.
</code>

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Nick Fankhauser 2003-08-19 01:53:13 Re: resultset.first() untrappable error
Previous Message Paul Thomas 2003-08-18 14:04:48 Re: patch: add a finalizer to AbstractJdbc1Statement