Could not determine data type of parameter $1 - Mailing list pgsql-jdbc
From | Vincent Risi |
---|---|
Subject | Could not determine data type of parameter $1 |
Date | |
Msg-id | 44EEB4F4.2050202@bbd.co.za Whole thread Raw |
Responses |
Re: Could not determine data type of parameter $1
|
List | pgsql-jdbc |
//////////////////////////// Using the version of the jbdc drive (postgresql-8.1dev-400.jdbc3.jar) instead of (postgresql-8.1-407.jdbc3.jar) the code below works. I would like to know if the code is valid or if the driver has a problem. It fails at ResultSet result = prepared.executeQuery(); //////////////////////////// ======================== Extract from DataHandler ======================== ... import java.text.SimpleDateFormat; public static SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyyMMddHHmmss"); public static java.sql.Timestamp dateTime(String value) throws Throwable { if (value.length() == 8) value += "000000"; java.util.Date date = dateTimeFormat.parse(value); return new java.sql.Timestamp(date.getTime()); } ================================== Extract from inherited data record ================================== ... public String cashier; public String terminalId; public String actionDateFrom; public String actionDateTo; public double receiptTotal; public double removalTotal; ========================================= Function or method where the error occurs ========================================= ... public boolean pettyCash() throws Throwable { String statement = "select CashierUserid, CashierTerminalId, ?, ?, 0, sum(CashierTotalRemoved) " +_EOL_+ "from ReceiptRemoval " +_EOL_+ "where RemovalType = 'P' " +_EOL_+ "and CashierUserid = ? " +_EOL_+ "and CashierTerminalId = ? " +_EOL_+ "and ActionDate > ? " +_EOL_+ "and ActionDate <= ? " +_EOL_+ "group by CashierUserid, CashierTerminalId " ; PreparedStatement prepared = connector.prepareStatement(statement); prepared.setTimestamp(1, DataHandler.dateTime(actionDateFrom)); prepared.setTimestamp(2, DataHandler.dateTime(actionDateTo)); prepared.setString(3, cashier); prepared.setString(4, terminalId); prepared.setTimestamp(5, DataHandler.dateTime(actionDateFrom)); prepared.setTimestamp(6, DataHandler.dateTime(actionDateTo)); ResultSet result = prepared.executeQuery(); ResultSetMetaData _rsmd_ = result.getMetaData(); int _columns_ = _rsmd_.getColumnCount(); if (_columns_ != 6) throw new Exception("Columns Read="+_columns_+" != Expected=6"); if (!result.next()) { result.close(); prepared.close(); return false; } cashier = result.getString(1); terminalId = result.getString(2); actionDateFrom = DataHandler.dateTime(result.getTimestamp(3)); actionDateTo = DataHandler.dateTime(result.getTimestamp(4)); receiptTotal = result.getDouble(5); removalTotal = result.getDouble(6); result.close(); prepared.close(); return true; } ///////////////////////////////////
pgsql-jdbc by date: