Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Jalankan sp_msforeachdb dalam aplikasi Java

Jika pernyataan dapat mengembalikan tidak atau banyak hasil, Anda tidak boleh menggunakan executeQuery , tetapi execute() sebagai gantinya, metode ini mengembalikan boolean menunjukkan jenis hasil pertama:

  • true :hasilnya adalah ResultSet
  • false :hasil adalah hitungan pembaruan

Jika hasilnya true , lalu gunakan getResultSet() untuk mengambil ResultSet , jika tidak getUpdateCount() untuk mengambil jumlah pembaruan. Jika jumlah pembaruan adalah -1 berarti tidak ada hasil lagi. Perhatikan bahwa jumlah pembaruan juga akan menjadi -1 ketika hasil saat ini adalah ResultSet . Juga baik untuk mengetahui bahwa getResultSet() harus mengembalikan null jika tidak ada lagi hasil atau jika hasilnya adalah jumlah pembaruan.

Sekarang jika Anda ingin mengambil lebih banyak hasil, Anda memanggil getMoreResults() (atau saudaranya menerima int parameter). Nilai kembalian boolean memiliki arti yang sama dengan execute() , jadi false bukan berarti tidak ada hasil lagi!

Tidak ada hasil lagi jika getMoreResults() mengembalikan false dan getUpdateCount() mengembalikan -1 (seperti yang juga didokumentasikan dalam Javadoc)

Pada dasarnya ini berarti bahwa jika Anda ingin memproses semua hasil dengan benar, Anda perlu melakukan sesuatu seperti di bawah ini:

boolean result = stmt.execute(...);
while(true)
    if (result) {
        ResultSet rs = stmt.getResultSet();
        // Do something with resultset ...
    } else {
        int updateCount = stmt.getUpdateCount();
        if (updateCount == -1) {
            // no more results
            break;
        }
        // Do something with update count ...
    }
    result = stmt.getMoreResults();
}

CATATAN:Bagian dari jawaban ini didasarkan pada jawaban saya untuk Java SQL:Statement.hasResultSet()?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa cara terbaik untuk memanfaatkan huruf pertama dari setiap kata dalam string di SQL Server?

  2. Hitung berdasarkan kondisi di SQL Server

  3. Database yang dapat menangani>500 juta baris

  4. Cara Mengekspor Data SQL Server Dari Tabel Ke File CSV

  5. Cara Mengubah Skema Objek (Tabel, Tampilan, Prosedur Tersimpan) di Database SQL Server - Tutorial SQL Server / TSQL Bagian 28