Insert ảnh vào SQL

E đang chạy thử 1 vd insert ảnh vào SQL , nhưng lại gặp lỗi này . Mọi người giúp em với ạ

create table Employees1(
id int,
name varchar(50),
photo varbinary(max))
INSERT INTO Employees1(id,name,photo)
select 10,'samsung note 10',BulkColumn from openrowset (bulk 'E:\Web\New folder\note10_plus.jpg',Single_Clob) as Picture

Bạn muốn chèn đường dẫn hay là dữ liệu của hình ảnh?
Cột picture là kiểu varchar(max), trong khi dữ liệu của ảnh là kiểu varbinary(max). Kiểu khác nhau đấy!!!

3 Likes

em muốn chèn dữ liệu của ảnh ấy ạ , do em thấy trên mạng họ sử dụng cú pháp như trên nhưng lại chạy được bình thường , còn em thì lại không chạy được nên em hơi thắc mắc ạ

Câu trả lời phía trên của mình có hơi nhầm (cơ bản vẫn đúng :smiling_imp:).
Sau khi ngờ ngợ và xem tài liệu chính thức:
openrowset + bulk

Mình nhận ra bạn chỉ sai duy nhất một (1) ký tự.
Single_Clob (C) hay Single_Blob (B).

“Nhờ” sai mà dữ liệu trả về trở thành varchar(max) thay vì varbinary(max).

5 Likes

à đúng rồi ạ , sau khi sửa lại thì nó đã ra được kiểu em muốn rồi ạ :joy: có vậy thôi mà e vật vã gần 2 tiếng trên gg mãi không ra :3

làm chơi thôi nha bạn, vì không ai lưu ảnh vào database để dùng trong môi trường thực tế cả :crazy_face::crazy_face::crazy_face:

3 Likes

Trường hợp muốn cho người dùng up ảnh lên web thì dùng cách nào đc nhỉ ?

lưu ảnh vào thư mục với tên là hash ngẫu nhiên, sau đó lưu path vào db

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?