11
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
22
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Xử 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
33
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
1. Binary Large Objects và Character
Large Objects là gì?
•
Binary Large Objects (BLOBs)
•
Character Large Objects (CLOBs)
•
Kiểu dữ liệu Large Value
44
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Binary Large Objects
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 Server 2000, kiểu image được sử dụng để lưu
trữ BLOB.
55
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Character 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.
66
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Kiể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)
77
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Minh 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
88
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
2. 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
99
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Đọ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
1010
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Minh họa đọc tuần tự LOB Value từ
Minh họa đọc tuần tự LOB Value từ
Database
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
1111
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Đọ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)
1212
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Minh họa đọc LOB Value -
Minh họa đọc LOB Value -
GetSqlBytes
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
1313
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
3. Quá trình ghi Large Objects vào
Database
•
Ghi Large Objects vào Database
1414
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Ghi 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
1515
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Minh họa ghi Large Objects vào
Minh họa ghi Large Objects vào
Database
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
1616
HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO
HocLapTrinhWeb.COM
Bài thực hành
•
Đọc BLOB và ghi ra tập tin dạng hình ảnh