Bagikan melalui


Bagian Data

Bagian data menentukan data himpunan baris bersama dengan pembaruan, penyisipan, atau penghapusan yang tertunda. Bagian data dapat berisi nol atau beberapa baris. Ini hanya dapat berisi data dari satu set baris di mana baris ditentukan oleh skema. Selain itu, seperti yang disebutkan sebelumnya, kolom tanpa data apa pun dapat dihilangkan. Jika atribut atau subelement digunakan di bagian data dan konstruksi tersebut belum ditentukan di bagian skema, itu diabaikan secara diam-diam.

String

Karakter XML yang dicadangkan dalam data teks harus diganti dengan entitas karakter yang sesuai. Misalnya, dalam nama perusahaan "Joe's Garage," tanda kutip tunggal harus digantikan oleh entitas. Baris aktual akan menyerupai berikut ini:

<z:row CompanyName="Joe's Garage"/>  

Karakter berikut dicadangkan dalam XML dan harus digantikan oleh entitas karakter: {',",&,<,>}.

Biner

Data biner dikodekan bin.hex (yaitu, satu byte memetakan ke dua karakter, satu karakter per nibble).

DateTime

Format VT_DATE varian tidak didukung langsung oleh jenis data XML-Data. Format yang benar untuk tanggal dengan komponen data dan waktu adalah yyyy-mm-ddThh:mm:ss.

Untuk informasi selengkapnya tentang format tanggal yang ditentukan oleh XML, lihat spesifikasi W3C XML-Data.

Ketika spesifikasi XML-Data mendefinisikan dua jenis data yang setara (misalnya, i4 == int), ADO akan menuliskan nama yang mudah diingat tetapi dibaca di keduanya.

Mengelola Perubahan Tertunda

Recordset dapat dibuka dalam mode pembaruan langsung atau batch. Ketika dibuka dalam mode pembaruan batch dengan kursor sisi klien, semua perubahan yang dilakukan pada Recordset berada dalam status tertunda hingga metode UpdateBatch dipanggil. Perubahan yang tertunda juga dipertahankan saat Recordset disimpan. Dalam XML, elemen tersebut diwakili oleh penggunaan elemen "perbarui" yang ditentukan dalam urn:schemas-microsoft-com:rowset. Selain itu, jika set baris dapat diperbarui, properti yang dapat diperbarui harus diatur ke true dalam definisi baris. Misalnya, untuk menentukan bahwa tabel Pengirit berisi perubahan yang tertunda, definisi baris akan terlihat menyerupai berikut ini.

<s:ElementType name="row" content="eltOnly" updatable="true">  
  <s:attribute type="ShipperID"/>  
  <s:attribute type="CompanyName"/>  
  <s:attribute type="Phone"/>  
  <s:extends type="rs:rowbase"/>  
</s:ElementType>  

Ini memberi tahu Penyedia Persistensi untuk menampilkan data sehingga ADO dapat membuat objek Recordset yang dapat diperbarui.

Contoh data berikut menunjukkan tampilan penyisipan, perubahan, dan penghapusan dalam file yang dipertahankan.

<rs:data>  
  <z:row ShipperID="2" CompanyName="United Package"   
    Phone="(503) 555-3199"/>  
<rs:update>  
  <rs:original>  
    <z:row ShipperID="3" CompanyName="Federal Shipping"   
      Phone="(503) 555-9931"/>  
  </rs:original>  
  <z:row Phone="(503) 552-7134"/>  
</rs:update>  
<rs:insert>  
  <z:row ShipperID="12" CompanyName="Lightning Shipping"   
    Phone="(505) 111-2222"/>  
  <z:row ShipperID="13" CompanyName="Thunder Overnight"   
    Phone="(505) 111-2222"/>  
  <z:row ShipperID="14" CompanyName="Blue Angel Air Delivery"   
    Phone="(505) 111-2222"/>  
</rs:insert>  
<rs:delete>  
  <z:row ShipperID="1" CompanyName="Speedy Express" Phone="(503) 555-9831"/>  
</rs:delete>  
</rs:data>  

Pembaruan selalu berisi seluruh data baris asli diikuti oleh data baris yang diubah. Baris yang diubah mungkin berisi semua kolom atau hanya kolom yang benar-benar berubah. Dalam contoh sebelumnya, baris untuk Shipper 2 tidak diubah, dan hanya kolom Telepon yang telah mengubah nilai untuk Shipper 3 dan oleh karena itu merupakan satu-satunya kolom yang disertakan dalam baris yang diubah. Baris yang disisipkan untuk Pengirit 12, 13, dan 14 di-batch bersama-sama di bawah satu tag rs:insert. Perhatikan bahwa baris yang dihapus juga dapat di-batch bersama-sama, meskipun ini tidak ditampilkan dalam contoh sebelumnya.

Lihat Juga

Menyimpan Rekaman dalam Format XML