Професионална програма
Loading...
+ Нов въпрос
PetarHr avatar PetarHr 1 Точки

Избор на тип данни за бинарни файлове (снимки, профилни снимки и др. под.)

Здравейте, 

Решавайки домашните от DB Basics откривам на доста места да създадем колона (именувана Picture, ProfilePicture и т.н.), която да съхванява, цитирам, "image with size up to XXXX.", където "ХХХХ" е или 900КБ или 2 МБ.

Четейки документацията за MS SQL типовете данни виждам, че вариантите ми са IMAGE (който е legacy, така че и той мн не се препоръчва) или VARBINARY. Само че и при двата не мога да задам да не са повече от 900 КБ или 2 МБ, а трябва да ги използвам с максималните стойности, които се побират в тях (2 ГБ).

Това ли е правилния подход при такива ограничения в размера на файловете? 

Или по друг начин формулирано - Kогато имаме ограничение от тип "снимка с размер над 8000 байта" правилното решение е да използваме IMAGE или VARBINARY(MAX)?

Поздрави, 

Петър Хр.

 

 

1
Databases Basics
nickwork avatar nickwork 655 Точки
Best Answer

Пример 

Създаваш полето като VARBINARY МАХ, после му слагаш констраинт за макс размер...това бяха показали на лекциите, точно на коя  не се сещам...това е пример от интернет...не е задължително да правиш alter table, можеш направо при декларацията на полето да му сложиш ограничение...както на теб ти е по удобно

CREATE TABLE dbo.T
(
    ID INT IDENTITY,
    VarB VARBINARY(MAX)
);

ALTER TABLE dbo.T ADD CONSTRAINT CHK_T_VarB__2MB CHECK (DATALENGTH(VarB) <= 2097152);
0
PetarHr avatar PetarHr 1 Точки

Супер, благодаря за отговора! :) 

0