2013-05-02 5 views
7

मैं जेडीबीसी का उपयोग कर जावा से किसी तालिका से डेटा हटाने की कोशिश कर रहा हूं। सबसे पहले मैं पंक्तियों की संख्या गिन रहा हूं और यह सुनिश्चित कर रहा हूं कि तालिका खाली नहीं है और फिर डेटा को छोटा कर रहा है।कथन ने परिणाम सेट वापस नहीं किया। जावा त्रुटि

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) 

त्रुटि काटना तालिका dbo.Link पर है:

यहाँ कोड मैं उपयोग कर रहा हूँ

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

त्रुटि है।

क्या मैं इसे सही तरीके से कर रहा हूं?

क्या कोई मेरी मदद कर सकता है कृपया।

धन्यवाद।

उत्तर

21

डीडीएल स्टेटमेंट निष्पादित करने के लिए executeQuery का उपयोग न करें; executeUpdate का उपयोग करें।

जुड़ा हुआ Javadocs से उद्धृत करने के लिए:

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.

(जोर मेरा)

और एक कम तालिका कथन एक DDL बयान है।

+0

@ सबमिट - चयन समस्या नहीं है। ओपी कहता है "त्रुटि ट्रंकेट टेबल dbo.Link पर है।"। – rgettman

+0

वाह। अनेक अनेक धन्यवाद। मैंने उसे नहीं देखा। – Huzaifa

+0

@rgettman पिछली टिप्पणी उत्तर अपडेट करने से पहले मान्य थी। मैं उस टिप्पणी को हटा दूंगा। – Smit

संबंधित मुद्दे