changed to this(where format changed):
{
String chr = st.nextToken();
String cmd = "UPDATE characters SET x = -84318, y = 244579, z = -3730 WHERE char_name = '"+chr+"'"; //fixed
java.sql.Connection connection = null;
try
{
connection = L2DatabaseFactory.getInstance().getConnection();
PreparedStatement statement = connection.prepareStatement(cmd);
statement.execute();
statement.close();
connection = L2DatabaseFactory.getInstance().getConnection();
statement = connection.prepareStatement("SELECT obj_id FROM characters where char_name = '"+chr+"'"); //fixed
ResultSet rset = statement.executeQuery();
int obj_id = rset.getInt(1);
rset.close();
statement.close();
connection = L2DatabaseFactory.getInstance().getConnection();
statement = connection.prepareStatement("DELETE FROM character_shortcuts WHERE char_obj_id="+obj_id); //fixed
statement.setInt(1, obj_id);
statement.execute();
statement.close();
connection = L2DatabaseFactory.getInstance().getConnection();
statement = connection.prepareStatement("UPDATE character_inventory SET equipSlot = -1 WHERE char_obj_id = ?"+obj_id); //fixed
statement.setInt(1, obj_id);
statement.execute();
statement.close();
}
got:
java.sql.SQLException: Before start of result set
at com.mysql.jdbc.ResultSet.checkRowPos(ResultSet.java:3620)
at com.mysql.jdbc.ResultSet.getString(ResultSet.java:1758)
at com.mysql.jdbc.ResultSet.getInt(ResultSet.java:1251)
at com.mchange.v2.sql.filter.FilterResultSet.getInt(FilterResultSet.java:373)
at net.sf.l2j.gameserver.clientpackets.Say2.<init>(Say2.java:231)
at net.sf.l2j.gameserver.PacketHandler.handlePacket(PacketHandler.java:274)
at net.sf.l2j.gameserver.ClientThread.run(ClientThread.java:221)
tried this (while added):
{
String chr = st.nextToken();
String cmd = "UPDATE characters SET x = -84318, y = 244579, z = -3730 WHERE char_name = '"+chr+"'";
java.sql.Connection connection = null;
try
{
connection = L2DatabaseFactory.getInstance().getConnection();
PreparedStatement statement = connection.prepareStatement(cmd);
statement.execute();
statement.close();
connection = L2DatabaseFactory.getInstance().getConnection();
statement = connection.prepareStatement("SELECT obj_id FROM characters where char_name = '"+chr+"'");
ResultSet rset = statement.executeQuery();
while (rset.next()) { //added this to test
int obj_id = rset.getInt(1);
rset.close();
statement.close();
connection = L2DatabaseFactory.getInstance().getConnection();
statement = connection.prepareStatement("DELETE FROM character_shortcuts WHERE char_obj_id="+obj_id);
statement.setInt(1, obj_id);
statement.execute();
statement.close();
connection = L2DatabaseFactory.getInstance().getConnection();
statement = connection.prepareStatement("UPDATE character_inventory SET equipSlot = -1 WHERE char_obj_id = ?"+obj_id);
statement.setInt(1, obj_id);
statement.execute();
statement.close();
} //close
}
got:
could not move char:java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:2032)
at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:2062)
at com.mysql.jdbc.PreparedStatement.setInt(PreparedStatement.java:558)
at com.mchange.v2.sql.filter.FilterPreparedStatement.setInt(FilterPreparedStatement.java:143)
at net.sf.l2j.gameserver.clientpackets.Say2.<init>(Say2.java:239)
at net.sf.l2j.gameserver.PacketHandler.handlePacket(PacketHandler.java:274)
at net.sf.l2j.gameserver.ClientThread.run(ClientThread.java:221)