Posted Wednesday, July 28, 2004 @ 20:53:52
The inserted row goes to the first row because that is the way the data comes back from database. You can make this row to go to the bottom by adding a "order by" to your sql query. If not, you can use DatabaseChangeListener class by implementing the onNewButtonClick() method.
class myListener extends DatabaseChangeListener
{
public boolean onNewButtonClick()
{
Connection conn = dbtable.getConnection();
Statement stmt = conn.createStatement();
stmt.executeUpdate("insert..")
ResultSet rs = stmt.executeQuery("select identityColumn from ...") //select the newly inserted row
Integer identitiyVal = -1
if(rs.next())
{
identitiyVal = rs.getInteger(1);
}
else
{
//error
}
Vector insertVector = new Vector();
insertVector.addElement(identitiyVal);
insertVector.addElement("");
insertVector.addElement("");
...
insertVector.addElement("");
try{
dBTable.insert(insertVector);
}
catch(Exception e)
{
e.printStackTrace()
}
//since we have already inserted the record, return false, so that
//quicktable doesn't insert the default record
return false;
}
public boolean beforeInsert(int row)
{
//since we have already inserted this record into database
//we don't want to insert this record into database
return false;
}
}