2016-03-23 20 views
0

'dan sonra güncellenmiş listeyi yeniden seçmez. Bu konuda arama yapmayı denedim ancak sonuçlardan memnun kalmadı. Temel olarak, karşılaştığım sorun, ResultSetName.insertRow() kullanarak satır eklediğimde, kayıt veritabanı tablosuna başarıyla eklendi ancak ResultSet'e yansıtılmadı, sonuçum, insertRow() kullanarak eklenen kaydı göstermiyor demektir. Sonucum ResultSet.TYPE_SCROLL_SENSITIVE ve ResultSet.CONCUR_UPDATABLE'dur. BenResultSet, insertRow

DBMS sürümü kullanıyorum: Oracle Veritabanı 12c Yayın 12.1.0.2.0 64 bit

JDBC sürümü: JDBC sürücüsü sürüm 12.1.0.1.0

Kod pasajı geçerli:

rs.moveToInsertRow(); 
rs.updateString("COLUMNNAME1","QWERTY"); 
rs.updateString("COLUMNNAME2","QWERTY DATA"); 
rs.insertRow(); 

ÇÖZÜM:

Benim diğer PC JDBC sürücüsü 12.1.0.2.0 kullanıyordum ve sonuç set.However takılan satır yansıtan aşağıdaki sonuçlar karışıklık yaratmak,

Kod pasajı:

DatabaseMetaData met = conn.getMetaData(); 
if(met.ownInsertsAreVisible(ResultSet.TYPE_SCROLL_SENSITIVE)) { 
    System.out.println("ownInsertsAreVisible : true"); 
} 
else { 
    System.out.println("ownInsertsAreVisible : false"); 
} 

if(met.insertsAreDetected(ResultSet.TYPE_SCROLL_SENSITIVE)) { 
    System.out.println("insertsAreDetected : true"); 
} 
else { 
    System.out.println("insertsAreDetected : false"); 
} 

OUTPUT:
ownInsertsAreVisible: false
insertsAreDetected:

yanlış bu garip ama yeni versiyon sayesinde şimdi benim için çalışıyor.

+1

JDBC uygulamalarının, sonuç kümesinde yansıyan değişikliklere sahip olmamasına izin verilir. ['DatabaseMetaData.ownInsertsAreVisible'] (http://docs.oracle.com/javase/8/docs/api/java/sql/DatabaseMetaData.html#ownInsertsAreVisible-int-) ne yapar? –

+0

_ "Oracle DBMS ve JDBC7 sürümü." _'ün geçerli sürüm bilgisi olmadığını unutmayın, lütfen Oracle sürümünü ve kullandığınız sürücünün sürümünü yükleyin. –

+0

Teşekkürler Mark. Netbeans yüklü iki PC'im var, her ikisi de DatabaseMetaData.ownInsertsAreVisible() için 'false' döndürüyor. Ancak, bir PC'de sonuçumdaki değişiklikleri yansıtabildi ve diğeri de aynı şeyi yapamadı. – Rambo772

cevap

0

Benim diğer PC JDBC sürücüsü 12.1.0.2.0 kullanıyordum ve sonuç set.However takılan satır yansıtan aşağıdaki sonuçlar karışıklık,

Kod parçacığını oluşturmak:

DatabaseMetaData met = conn.getMetaData(); 
if(met.ownInsertsAreVisible(ResultSet.TYPE_SCROLL_SENSITIVE)) { 
    System.out.println("ownInsertsAreVisible : true"); 
} 
else { 
    System.out.println("ownInsertsAreVisible : false"); 
} 

if(met.insertsAreDetected(ResultSet.TYPE_SCROLL_SENSITIVE)) { 
    System.out.println("insertsAreDetected : true"); 
} 
else { 
    System.out.println("insertsAreDetected : false"); 
} 

ÇIKIŞ:
ownInsertsAreVisible: false
insertsAreDetected: false

Bu garip ama şimdi yeni sürüm sayesinde şimdi benim için çalışıyor.

İlgili konular