Mặc dù không khuyến khích lưu trữ và truy vấn trực tiếp dữ liệu hình ảnh (picture) trong bảng (table) bên trong cơ sở dữ liệu, tuy nhiên nhiều ứng dụng vẫn muốn lưu trữ hình ảnh trong bảng để đảm bảo tính toán vẹn của dữ liệu. Các ứng dụng này sẽ cung cấp thêm chức năng tạo bản copy của hình ảnh vào một thư mục tạm để truy vấn nhanh chóng. Bài viết này giới thiệu cách thức lưu trữ hình ảnh vào trong bảng của CSDL SQL Server.

Tạo bảng dữ liệu mẫu

Đầu tiên, tạo bảng dữ liệu lưu thông tin về nhân viên (Employees) như sau:

Tạo bảng dữ liệu

Chèn thử một bản ghi

Sử dụng câu lệnh INSERT để chèn thử một bản ghi vào trong bảng Employees:

Sử dụng lệnh Insert chèn ảnh

Sử dụng truy vấn để kiểm tra kết quả:

Kiểm tra kết quả Insert

Kết quả chèn:

Kết quả chèn bằng Insert

Tạo PROCEDURE chèn bản ghi

Để thuận tiện cho việc sử dụng, ta tạo một STORED PROCEDURE để chèn thêm bản ghi (có chứa tệp ảnh) vào:

Tạo Procedure

Lưu ý: Vì hàm OPENROWSET không cho phép đối số là biến (variable, ví dụ @a, @filename,…) nên ta phải tạo ra câu lệnh SQL để thêm các đối số vào, sau đó dùng EXEC() để gián tiếp thực thi câu lệnh chèn.

Sử dụng PROCEDURE trên để chèn thử một bản ghi:

Sử dụng Procedure

Kết quả thu được:

Kết quả thực thi Procedure

Comments