Bagaimana untuk mengakses dan memodifikasi SQL Server BLOB Data dengan menggunakan objek ADO Stream

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 258038 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

RINGKASAN

The Streaming objek yang diperkenalkan di ActiveX Data objek (ADO) 2.5 dapat digunakan untuk sangat menyederhanakan kode yang perlu ditulis untuk mengakses dan memodifikasi Biner besar objek (GUMPALAN) data dalam SQL Server Database. Versi sebelumnya ADO [2.0, 2.1 dan 2.1 SP2] diperlukan hati-hati penggunaan dari GetChunk dan AppendChunk metode Bidang objek untuk membaca dan menulis BLOB data dalam potongan ukuran yang tetap dari dan GUMPALAN kolom. Sebuah alternatif untuk metode ini sekarang ada dengan munculnya ADO 2.5. Artikel termasuk kode contoh yang menunjukkan bagaimana Streaming objek dapat digunakan untuk program tugas-tugas umum berikut:
  • Menyimpan data yang disimpan dalam kolom SQL Server gambar ke file pada hard disk.
  • Memindahkan isi .gif file ke kolom gambar di Tabel SQL Server.

INFORMASI LEBIH LANJUT

Berikut contoh kode didasarkan pada data yang disimpan dalam pub_info tabel dalam database contoh pub SQL Server 7.0. Anda perlu memodifikasi rangkaian sambungan ADO untuk menunjuk ke instalasi SQL Server Anda.

Contoh 1: Menyimpan Data dalam SQL Server gambar kolom ke berkas pada Hard Disk

Kode dalam contoh ini membuka recordset di meja pub_info dalam database pub dan menyimpan biner gambar data yang disimpan dalam kolom logo Catatan pertama ke berkas pada hard disk, sebagai berikut:
  1. Membuka baru Standar EXE Visual Basic proyek.
  2. Pada Project menu, klik untuk memilih Referensi, dan kemudian mengatur referensi Perpustakaan objek Microsoft ActiveX Data objek 2,5.
  3. Tempat CommandButton kontrol pada Form1.
  4. Membuat pernyataan berikut dalam bentuk umum Deklarasi bagian:
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim mstream As ADODB.Stream
    					
  5. Memotong dan paste kode berikut ke Klik peristiwa CommandButton bahwa Anda ditambahkan ke bentuk:
    Set cn = New ADODB.Connection
    cn.Open "Provider=SQLOLEDB;data Source=<name of your SQL Server>;
    Initial Catalog=pubs;User Id=<Your Userid>;Password=<Your Password>"
    
    Set rs = New ADODB.Recordset
    rs.Open "Select * from pub_info", cn, adOpenKeyset, adLockOptimistic
    
    Set mstream = New ADODB.Stream
    mstream.Type = adTypeBinary
    mstream.Open
    mstream.Write rs.Fields("logo").Value
    mstream.SaveToFile "c:\publogo.gif", adSaveCreateOverWrite
    
    rs.Close
    cn.Close
    					
  6. Simpan dan menjalankan proyek Visual Basic.
  7. Klik CommandButton untuk menyimpan data biner di kolom logo catatan pertama untuk file c:\publogo.gid. Mencari berkas ini pada Windows Explorer dan membukanya untuk melihat gambar yang tersimpan.

    Kode dalam contoh ini menyatakan ADODB Streaming objek dan set yang Jenis properti untuk adTypeBinary untuk mencerminkan bahwa objek ini akan digunakan untuk bekerja dengan ganda data. Setelah ini, data biner yang disimpan di kolom logo pertama Catatan dalam tabel pub_info adalah ditulis untuk Streaming objek dengan menelepon yang Menulis metode. The Streaming objek sekarang berisi data biner yang disimpan ke file oleh panggilan yang SaveToFile metode dan lewat di jalan ke file. The adSaveCreateOverWrite konstan berlalu dalam sebagai parameter kedua penyebab SaveToFile metode untuk menimpa file yang ditentukan jika itu sudah ada.

Contoh 2: Mentransfer gambar yang disimpan di .gif File ke gambar kolom dalam tabel SQL Server

Kode dalam contoh ini menyimpan gambar yang disimpan dalam file .gif untuk logo kolom dalam catatan pertama meja pub_info oleh Timpa yang isi saat ini, sebagai berikut:
  1. Membuka baru Standar EXE Visual Basic proyek.
  2. Pada Project menu, klik untuk memilih Referensi, dan kemudian mengatur referensi Perpustakaan objek Microsoft ActiveX Data objek 2,5.
  3. Tempat CommandButton pada Form1.
  4. Membuat pernyataan berikut dalam bentuk umum Deklarasi bagian:
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim mstream As ADODB.Stream
    					
  5. Memotong dan paste kode berikut di Klik peristiwa CommandButton bahwa Anda ditambahkan ke bentuk:
    Set cn = New ADODB.Connection
    cn.Open "Provider=SQLOLEDB;data Source=<name of your SQL Server>;
    Initial Catalog=pubs;User Id=<Your Userid>;Password=<Your Password>"
    
    Set rs = New ADODB.Recordset
    rs.Open "Select * from pub_info", cn, adOpenKeyset, adLockOptimistic
    
    Set mstream = New ADODB.Stream
    mstream.Type = adTypeBinary
    mstream.Open
    mstream.LoadFromFile "<path to .gif file>"
    rs.Fields("logo").Value = mstream.Read
    rs.Update
    
    rs.Close
    cn.Close
    					
  6. Simpan dan menjalankan proyek Visual Basic.
  7. Klik pada CommandButton untuk menjalankan kode untuk streaming konten file .gif untuk ADO Streaming objek, dan menyimpan data dalam Streaming untuk logo kolom dalam catatan pertama Recordset.
  8. Pastikan bahwa gambar dalam kolom logo telah dimodifikasi dengan menggunakan kode dalam contoh 1.

REFERENSI

Untuk informasi tambahan, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
308042Bagaimana untuk membaca dan menulis Data BLOB dengan menggunakan ADO.NET dengan Visual Basic.NET

Properti

ID Artikel: 258038 - Kajian Terakhir: 21 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Visual Basic 6.0 Professional Edition
Kata kunci: 
kbhowto kbmt KB258038 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:258038

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com