2013-05-02 17 views
7

JDBC'yi kullanarak java'dan bir tablodaki verileri silmeye çalışıyorum. Öncelikle satırların hiçbirini sayıyorum ve tablonun boş olmadığından emin olun ve ardından Verileri kırpın.Açıklama, sonuç kümesini döndürmedi. Java Hatası

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) 

hata Truncate Tablo dbo.Link yer almaktadır: Burada

Ben

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"); 
    } 

Hata kullanıyorum kodudur.

Bunu doğru şekilde yapıyorum mu?

Birisi bana yardım edebilir mi lütfen.

Teşekkürler.

cevap

21

DDL bildirimi yürütmek için executeQuery kullanmayın; executeUpdate kullanın.

bağlantılı Javadocs alıntı için:

Executes the given SQL statement, which may be an INSERT, UPDATE, or DELETE statement or an SQL statement that returns nothing, such as an SQL DDL statement.

(vurgu benim)

Ve bir kesiği tablo ifadesi bir DDL ifadedir.

+0

@Smit - Seçim sorun değil. OP, "Hata, Truncate Table dbo.Link." Şeklinde belirtiyor. – rgettman

+0

Vay. Bir ton teşekkürler. Ben onu görmedim. – Huzaifa

+0

@rgettman Önceki yorum yanıtı güncellemeden önce geçerliydi. Bu yorumu sileceğim. – Smit