Transcript
Page 1: BÀI 9:  Xử lý các đối tượng lưu trữ thông tin với số lượng lớn

11

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

Page 2: BÀI 9:  Xử lý các đối tượng lưu trữ thông tin với số lượng lớn

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

Page 3: BÀI 9:  Xử lý các đối tượng lưu trữ thông tin với số lượng lớn

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

Page 4: BÀI 9:  Xử lý các đối tượng lưu trữ thông tin với số lượng lớn

44

HỌC LẬP TRÌNH WEB TỪ CƠ BẢN ĐẾN NÂNG CAO

HocLapTrinhWeb.COM

Binary Large ObjectsBinary 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.

Page 5: BÀI 9:  Xử lý các đối tượng lưu trữ thông tin với số lượng lớn

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.

Page 6: BÀI 9:  Xử lý các đối tượng lưu trữ thông tin với số lượng lớn

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)

Page 7: BÀI 9:  Xử lý các đối tượng lưu trữ thông tin với số lượng lớn

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

Page 8: BÀI 9:  Xử lý các đối tượng lưu trữ thông tin với số lượng lớn

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

Page 9: BÀI 9:  Xử lý các đối tượng lưu trữ thông tin với số lượng lớn

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

Page 10: BÀI 9:  Xử lý các đối tượng lưu trữ thông tin với số lượng lớn

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ừ DatabaseDatabase

•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

Page 11: BÀI 9:  Xử lý các đối tượng lưu trữ thông tin với số lượng lớn

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)

Page 12: BÀI 9:  Xử lý các đối tượng lưu trữ thông tin với số lượng lớn

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 - GetSqlBytesGetSqlBytes

•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

Page 13: BÀI 9:  Xử lý các đối tượng lưu trữ thông tin với số lượng lớn

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

Page 14: BÀI 9:  Xử lý các đối tượng lưu trữ thông tin với số lượng lớn

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

Page 15: BÀI 9:  Xử lý các đối tượng lưu trữ thông tin với số lượng lớn

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 DatabaseDatabase

•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

Page 16: BÀI 9:  Xử lý các đối tượng lưu trữ thông tin với số lượng lớn

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


Recommended