La déclaration n'a pas renvoyé de résultat. Erreur Java
Je suis en train de supprimer des données dans une table à partir de java à l'aide de JDBC. D'abord, je suis en comptant les pas de lignes et de s'assurer de la table n'est pas vide et puis Tronquer les données.
Voici le code, je suis en utilisant
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection con = DriverManager.getConnection("jdbc:sqlserver://m-i:1433;databaseName=Tes", "sa", "Password");
Statement cnnt= con.createStatement();
Statement del1 = con.createStatement();
ResultSet rs = cnnt.executeQuery("Select count(lea) AS cnt from dbo.Link");
int count= 0;
if(rs.next())
{
count = rs.getInt("cnt");
}
System.out.println(count);
if(count != 0)
{
del1.executeQuery("Truncate Table dbo.Link");
}
else
{
System.out.println("Table is already empty");
}
Erreur:
Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: The statement did not return a result set.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:800)
at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:689)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeQuery(SQLServerStatement.java:616)
L'erreur est à l'instruction Truncate Table dbo.Lien.
Suis-je le faire de la bonne façon?
Quelqu'un peut-il m'aider, s'il vous plaît.
Grâce.
OriginalL'auteur Huzaifa | 2013-05-02
Vous devez vous connecter pour publier un commentaire.
Ne pas utiliser
executeQuery
pour exécuter une instruction DDL; utilisationexecuteUpdate
.Pour citer le lié Javadoc:
(l'emphase est mienne)
Et une instruction truncate table est une instruction DDL.
Wow. Merci une tonne. Je n'ai pas la voir.
Commentaire précédent était valable avant la mise à jour de la réponse. Je vais supprimer ce commentaire.
Merci pour l'affichage d'un très réponse utile pour un débutant comme moi. J'ai un simplequestion releted de mon code java. Voici la question que j'ai posée sur stakoverflow - ce ( com.microsoft.sqlserver.jdbc.SQLServerException:L'indice 0 est hors de portée), exception moyens. Je voulais juste savoir qu'est-il un moyen par lequel je peux obtenir le numéro de colonne automatiquement à partir de la db au lieu de mettre les numéros de colonne manuellement dans ma première boucle for
OriginalL'auteur rgettman