19 Oct

RMS Part 4 – Ubah data di dalam RecordStore

tutorial sebelumnya membahas tentang:
1. Cara membuat RecordStore
2. Cara menambahkan data ke dalam RecordStore
3. Cara mendapatkan data dari dalam RecordStore

pada tutorial part 4 ini kita akan mencoba untuk mengubah data dalam RecordStore. caranya silakan perhatikan kode program berikut ini:

public void UpdateDataKategori(Kategori kategori) {
        byte[] temp1 = null;
        try {
            RecordEnumeration re = rs.enumerateRecords(null, null, false);
            while (re.hasNextElement()) {
                int i = re.nextRecordId();
                temp1 = rs1.getRecord(i);
                ByteArrayInputStream bais = new ByteArrayInputStream(temp1);
                DataInputStream dis = new DataInputStream(bais);
                try {
                    String id = dis.readUTF();
                    if (id.equals(kategori.getId())) {
                        byte temp2[] = null;
                        ByteArrayOutputStream baos = new ByteArrayOutputStream();
                        DataOutputStream dos = new DataOutputStream(baos);
                        try {
                            dos.writeUTF(kategori.getId());
                            dos.writeUTF(kategori.getNama());
                            temp2 = baos.toByteArray();
                        } catch (IOException e) {
                        }
                        try {
                            rs.setRecord(i, temp2, 0, temp2.length);
                        } catch (Exception e) {
                        }
                        break;
                    }
                } catch (IOException ioe) {
                }
            }
            re.rebuild();
        } catch (Exception e) {
        }
    }

Logika di dalam perubahan data dari RecordStore adalah dengan mengambil data terlebih dahulu dari RecordStore, kita lakukan perubahan, kemudian kita lakukan pemanggilan setRecord() pada RecordStore.

Leave a Reply

Your email address will not be published. Required fields are marked *