J'ai une table qui contient deux colonnes CODE où il y a tout le code à barres et VARIABLE initialisé à 0 au début. Je dois mettre à jour la table quand je scanne le code barre, je dois ajouter 1 à la variable, quand je la scanne deux fois VARIABLE = 2 .... J'ai essayé de le faire comme ça mais ça ne marche pas. Peut-on aider quelqu'un ?Mise à jour de la table SQL
String query = "INSERT INTO TABLE (CODE,VARIABLE) VALUES(?,?) ON DUPLICATE KEY UPDATE VARIABLE='"+VARIABLE+1+"'";
try {
if (connect != null) {
PreparedStatement statement = connect.prepareStatement(query);
statement.setString(1, "%" + res + "%");
statement.setInt(2,VARIABLE);
r=statement.executeQuery();
if (r.next()) {
message = "Updated";
String code = r.getString("CODE");
int var = r.getInt("VARIABLE");
INFOSOMME.setText(message);
INFOSOMME.setText(code);
INFOSOMME.setText(var);
} else {
message = "Error";
INFOSOMME.setText(message);
}
} else {
message = "Error in connection with SQL server";
INFOSOMME.setText(message);
}
} catch (SQLException e) {
etat = false;
message = "Got an exception!";
System.err.println(e.getMessage());
}
}
});
ERREUR: 08-03 09: 43: 44,966 30393-30393/com.example.practicas.myapplication W/System.err: sintaxis incorrecta cerca de la palabra clave 'ON'.
J'ai essayé de changer la requête à Chaîne query = "INSERER DANS TABLE (CODE, VARIABLE) VALEURS (?, 0);" + "Mettre à jour TABLE SET VARIABLE = VARIABLE + 1 WHERE CODE LIKE?"; et j'ai eu cette erreur /System.err: La méthode executeQuery doit renvoyer un ensemble de résultats.
après un message d'erreur si vous obtenez une erreur? – akhilesh0707
Avez-vous essayé VARIABLE + 1 pour mettre() ainsi (VARIABLE + 1)? – cotnic
Donner [cette réponse] (https://stackoverflow.com/a/2718352/469080) un aller, je pense que c'est ce dont vous avez besoin. Fondamentalement 'INSERT OR IGNORE' votre code à barres, puis' UPDATE' la valeur dans une déclaration subséquente. –