Binary Large Objects•BLOBs là các đối tượng lớn dưới dạng nhị phân, có thể được lưu trữ trong CSDL •BLOBs có thể chứa hình ảnh, bảng tính, video clips và các tập tin thi hành •Trong SQL
Trang 11
Trang 2Xử lý các đối tượng lưu trữ thông
tin với số lượng lớn
1. Binary Large Objects và Character Large Objects là gì?
2. Quá trình đọc Large Objects từ Database
3. Quá trình ghi Large Objects xuống Database
Trang 31 Binary Large Objects và Character
Large Objects là gì?
•Binary Large Objects (BLOBs)
•Character Large Objects (CLOBs)
•Kiểu dữ liệu Large Value
Trang 4Binary Large Objects
•BLOBs là các đối tượng lớn dưới dạng nhị phân, có thể
được lưu trữ trong CSDL
•BLOBs có thể chứa hình ảnh, bảng tính, video clips và các tập tin thi hành
•Trong SQL Server 2000, kiểu image được sử dụng để lưu trữ BLOB
Trang 5Character Large Objects
•CLOBs là các đối tượng lớn dưới dạng ký tự, có thể được lưu trữ trong CSDL
•CLOBs có thể chứa giá trị dạng văn bản như : thông tin cụ thể trong văn bản được phân biệt bằng dấu phẩy, hoặc tài liệu XML
•SQL Server 2000 dùng kiểu text và ntext để lưu trữ CLOB
Trang 6Kiểu dữ liệu Large Value
•Large Value Data Types (LVDT) là kiểu có thể lưu trữ giá trị trên 8000bytes (8k)
•Là khái niệm mới trong SQL Server 2005, thay thế kiểu
LOB
•Các kiểu tương ứng với SQL Server 2000:
−image = varbinary(MAX)
−text = varchar(MAX)
−ntext = nvarchar(MAX)
Trang 7Minh họa kiểu
Minh họa kiểu Large Value
•Xem kiểu dữ liệu của field LargePhoto trong table
Production.ProductPhoto – CSDL AdventureWorks
Trang 82 Quá trình đọc Large Objects từ
Database
•Đọc tuần tự LOB Value từ Database
•Đọc LOB hoặc LDT Value trong SQL Server 2005
Trang 9Đọc tuần tự LOB Value từ Database
•Các bước thực hiện:
−Tạo đối tượng Command
−Tạo đối tượng DataReader bằng cách sử dụng phương thức ExecuteReader và xác định tham số là
CommandBehavior.SequentialAccess
−Sử dụng phương thức GetBytes để đọc dữ liệu BLOB Hoặc
−Phương thức GetChars để đọc dữ liệu CLOB
Trang 10Minh họa đọc tuần tự LOB Value từ
Database
•Sử dụng bảng Production.ProductPhoto, có field
LargePhoto
•Tạo Command và lưu nội dung vào DataReader
•Dùng GetBytes để đọc dữ liệu cột LargePhoto
•Xuất nội dung của cột này ra màn hình
Trang 11Đọc LOB hoặc LDT Value trong
SQL Server 2005
•Sử dụng phương thức GetSqlBytes để đọc dữ liệu BLOB hoặc varbinary(MAX)
•Phương thức GetSqlChars để đọc dữ liệu CLOB hoặc
varchar(MAX)
Trang 12Minh họa đọc LOB Value -
GetSqlBytes
•Khai báo mảng byte để trữ giá trị đọc được của field
LargePhoto
•Tạo Connection và Command, lưu nội dung vào
DataReader
•Dùng GetSqlBytes để đọc dữ liệu cột LargePhoto
•Xuất nội dung của cột này ra tập tin hình ảnh
Trang 133 Quá trình ghi Large Objects vào
Database
•Ghi Large Objects vào Database
Trang 14Ghi Large Objects vào Database
•Các bước thực hiện
−Tạo Command với câu lệnh thích hợp (Insert/Update)
−Truyền tham số có kiểu BLOB/CLOB
−Tính toán giá trị cho tham số có kiểu BLOB/CLOB
−Thi hành câu lệnh của Command
Trang 15Minh họa ghi Large Objects vào
Database
•Cập nhật field LargePhoto trong bảng
Production.ProductPhoto, giá trị là một tập tin hình ảnh có sẵn
•Tạo Command, có câu lệnh Update chứa 1 tham số, tham
số có kiểu là VarBinary
•Mở tập tin hình ảnh, đọc giá trị vào mảng byte
•Thi hành Command với giá trị của tham số là mảng byte
Trang 16Bài thực hành
•Đọc BLOB và ghi ra tập tin dạng hình ảnh