2016-07-26 7 views
0

Ich entwickle eine SAPUI5-Anwendung. Ich brauche Daten von db retrive und ich bin ein .xsjs verwenden, das ist mein Ajax-Aufruf:XSJS geben immer ein exmpty result set von ajax call zurück

jQuery.ajax({ 
      url : "/SimpleProject/services/querytest.xsjs", 
      method: "GET", 
      success: function(response) { 
       console.log(JSON.parse(response)); 
      }, 
      error: function(e) { 
       sap.ui.commons.MessageBox.alert("ERROR"); 
      } 
     }); 

Und das ist meine .xsjs Datei, wo ich versuche, die SAP HANA DB abzufragen.

try { 
    $.response.contentType = "application/json"; 

    var conn = $.db.getConnection(); 

    var statement = conn.prepareStatement('SELECT * FROM "_SYS_BIC"."TABLETEST"'); 
    var rs = statement.executeQuery(); 

    conn.commit(); 

    if (rs != undefined) 
     $.response.setBody(JSON.stringify(rs)); 
    else $.response.setBody(JSON.stringify("empty record set")); 

    $.response.status = $.net.http.OK; 
} catch(e) { 
    $.response.status = $.net.http.INTERNAL_SERVER_ERROR; 
    $.response.setBody(JSON.stringify(e)); 
} finally { 
    statement.close(); 
    conn.close(); 
} 

Wenn ich die Abfrage von SQL-Konsole ausführen, es funktioniert gut, aber von dem xsjs zurückkehrt immer ein leeres Ergebnis.

Antwort

0

Ich habe es behoben, ich kann das Objekt "rs" nicht als Ausgabe senden, aber ich muss ein anderes Objekt als Ergebnis erstellen;

while (rs.next()) { 
     var record = {}; 
     record.npp = rs.getString(1); 
     record.prog = rs.getString(2); 
     record.sottoProg = rs.getString(3); 
     output.results.push(record); 
} 
rs.close(); 

Jetzt funktioniert die xsjs gut.