Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Работа с внешними данными (ссылки)  [new]
Nightingale
Member

Откуда:
Сообщений: 48
Всем привет.
Я пока новичок в SQL, поэтому не судите меня строго пожалуйста.
Мною была создана база данных в MS Access 2013. Там я использовал тип данных "Вложение" и вкладывал туда Документы(word,pdf и т.д.). Но к сожалению Access ограничен 2 Гб данных, а необходимо вкладывать бОльшие объёмы данных.
Решили перевести базу в формат sql.
Вот только я не могу разобраться, как здесь работает Вложения?
Читал, что надо использовать тип данных "nvarchar(max)". Однако описания, как именно создавать ссылки на данные я ни где не нашёл.
Буду крайне признателен за любую информацию по данному вопросу.
8 июн 16, 11:37    [19270353]     Ответить | Цитировать Сообщить модератору
 Re: Работа с внешними данными (ссылки)  [new]
правильный проходящий.
Guest
Nightingale,

забудьте про ссылки, вложения и прочие прибабахи десктопныых БД. Любые поля заполняются одинаково. Ведь на число или строку вы не создаете ссылки для помещения их в поле таблицы? Вы потому и не можете ничего найти, что этого просто нет.
8 июн 16, 11:50    [19270435]     Ответить | Цитировать Сообщить модератору
 Re: Работа с внешними данными (ссылки)  [new]
Nightingale
Member

Откуда:
Сообщений: 48
Спасибо.
А как тогда прикладывать внешние документы, как ссылаться на них тогда ?
Это надо делать через Внешнюю оболочку ?
8 июн 16, 11:56    [19270477]     Ответить | Цитировать Сообщить модератору
 Re: Работа с внешними данными (ссылки)  [new]
правильный проходящий.
Guest
Nightingale
Спасибо.
А как тогда прикладывать внешние документы,
Внешние файлы - это набор байтов.
как ссылаться на них тогда ?
Никак. Получаешь содержимое файла и запихиваешь в поле.
Это надо делать через Внешнюю оболочку ?
А есть еще внутренние оболочки? Своей прогой. Она умеет читать файлы?
8 июн 16, 12:05    [19270534]     Ответить | Цитировать Сообщить модератору
 Re: Работа с внешними данными (ссылки)  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
К слову на SQL Server тоже есть ограничения особенно на Express редакции (не более 10 Гб на базу). Если Вы будете сохранять файлы в базу, то почитайте про FILESTREAM: https://technet.microsoft.com/ru-ru/library/bb933993(v=sql.105).aspx
8 июн 16, 12:13    [19270589]     Ответить | Цитировать Сообщить модератору
 Re: Работа с внешними данными (ссылки)  [new]
Nightingale
Member

Откуда:
Сообщений: 48
Спасибо.
Давайте я обрисую задачи, какие необходимо осуществить.
В общем надо написать морду к базе (пока ещё не решил на чём, возможно на C#. Хотя я не программист и сколько времени это займёт - не знаю))). Может и посоветуйте что ни будь проще).
Так вот:
Задача состоит в том, что в этой самой морде я попадаю в какую либо точку БД. И в этой точке появляется ссылка на документ, на который я щёлкаю и он открывается (ну разумеется что в системе есть приложение, открывающее его). Сами файлы хранятся в сетевом доступе через SMB.
Вот как то так...
Я думаю это довольно распространённая задача на предприятиях, однако техническая реализация её далеко не так проста.
8 июн 16, 12:17    [19270619]     Ответить | Цитировать Сообщить модератору
 Re: Работа с внешними данными (ссылки)  [new]
Nightingale
Member

Откуда:
Сообщений: 48
AlanDenton,
Developer 2014
8 июн 16, 12:25    [19270679]     Ответить | Цитировать Сообщить модератору
 Re: Работа с внешними данными (ссылки)  [new]
правильный проходящий.
Guest
Nightingale
Я думаю это довольно распространённая задача на предприятиях, однако техническая реализация её далеко не так проста.
Вот как раз реализация и проста. О чем уже и написано. Но к серверу это все не имеет отношения. Раз уж у вас файлы на самбе лежат, то можете хранить в базе не сами файлы, а пути к ним, те самые, которые вы называете ссылками. Все остальное относится к вашей проге, которую вы напишете. На языке, который выберете. С консультациями по нему на форуме, посвященном этому языку.
8 июн 16, 12:26    [19270687]     Ответить | Цитировать Сообщить модератору
 Re: Работа с внешними данными (ссылки)  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7870
Nightingale,

существует масса готовых приложений для электронного документооборота, не изобретайте, то, что не сможете реализовать.
8 июн 16, 12:27    [19270694]     Ответить | Цитировать Сообщить модератору
 Re: Работа с внешними данными (ссылки)  [new]
Nightingale
Member

Откуда:
Сообщений: 48
[/quot]Вот как раз реализация и проста. О чем уже и написано. [/quot]
Интересно где???
[/quot]Раз уж у вас файлы на самбе лежат, то можете хранить в базе не сами файлы, а пути к ним, те самые, которые вы называете ссылками.[/quot]
Я с этого вопроса начинал тему. Спрашивал как это технически реализовать?

Ладно. Всё равно спасибо.
8 июн 16, 12:48    [19270844]     Ответить | Цитировать Сообщить модератору
 Re: Работа с внешними данными (ссылки)  [new]
правильный проходящий.
Guest
Nightingale
Вот как раз реализация и проста. О чем уже и написано. [/quot]
Интересно где???[/quot]Везде, где пишут про открытие файлов прогами, ассоциированными с расширениями файлов. Поищите по слову ShellExecute
Раз уж у вас файлы на самбе лежат, то можете хранить в базе не сами файлы, а пути к ним, те самые, которые вы называете ссылками.[/quot]
Я с этого вопроса начинал тему. Спрашивал как это технически реализовать?[/quot]Еще раз - к серверу ( а только его тут и можно обсуждать) это не имеет ни малейшего отношения. И что "это" технически реализовать? Запись пути к файлу в базу? Не просто, а очень просто - записать в строковое поле как любую строку ибо путь к файлу - строка символов и не более того. Или вы не знаете команду UPdate и как ею пользоваться?
8 июн 16, 13:05    [19270966]     Ответить | Цитировать Сообщить модератору
 Re: Работа с внешними данными (ссылки)  [new]
invm
Member

Откуда: Москва
Сообщений: 9413
Nightingale
Но к сожалению Access ограничен 2 Гб данных, а необходимо вкладывать бОльшие объёмы данных.
В SQL Sever BLOB'ы также ограничены двумя Гб, за исключением FILESTREAM и FILETABLE.
Вот в их сторону и смотрите.
8 июн 16, 13:16    [19271022]     Ответить | Цитировать Сообщить модератору
 Re: Работа с внешними данными (ссылки)  [new]
Nightingale
Member

Откуда:
Сообщений: 48
Спасибо.
Да, надо использовать FILESTREAM.
Значит в самой базе это прописываться как строковое поле (напр: \\docs\ghosts\UKRF\blablabla.pdf)
А уже в клиенте реализуется то, что эта строка открывается как гиперссылка.

Я правильно понял?
8 июн 16, 14:16    [19271382]     Ответить | Цитировать Сообщить модератору
 Re: Работа с внешними данными (ссылки)  [new]
правильный проходящий.
Guest
Nightingale,
да, совершенно правильно.
8 июн 16, 14:20    [19271408]     Ответить | Цитировать Сообщить модератору
 Re: Работа с внешними данными (ссылки)  [new]
invm
Member

Откуда: Москва
Сообщений: 9413
Nightingale,

8 июн 16, 14:32    [19271477]     Ответить | Цитировать Сообщить модератору
 Re: Работа с внешними данными (ссылки)  [new]
Nightingale
Member

Откуда:
Сообщений: 48
invm,

Огромнейшее Вам спасибо!
Именно то, что надо.
8 июн 16, 16:14    [19272018]     Ответить | Цитировать Сообщить модератору
 Re: Работа с внешними данными (ссылки)  [new]
iljy
Member

Откуда:
Сообщений: 8711
Nightingale
Спасибо.
Да, надо использовать FILESTREAM.
Значит в самой базе это прописываться как строковое поле (напр: \\docs\ghosts\UKRF\blablabla.pdf)
А уже в клиенте реализуется то, что эта строка открывается как гиперссылка.

Я правильно понял?

правильный проходящий.
Nightingale,
да, совершенно правильно.


Граждане, а кто-нибудь может внятно объяснить, нахрена имя файла хранить в файлстриме?? Или вы хотите дальше давать доступ к сохраненному в файлстриме файлу виндовыми средствами ? Тогда при чем тут его имя, там сам файл будет храниться, а имя будет автогенеренное. Или все вдруг внезапно решили, что текстовые строки в базу не влезут? Так даже у экспресса ограничение 10 гигов, а у него 2 (хотя мне почему-то кажется, что это не имена, а очень даже сами файлы). К тому же у него девелопер (за использование которого, кстати, могут за задницу прихватить, ибо нельзя в коммерческих целях) и ограничение вообще не актуально.
8 июн 16, 16:50    [19272302]     Ответить | Цитировать Сообщить модератору
 Re: Работа с внешними данными (ссылки)  [new]
правильный проходящий.
Guest
iljy,

так, не надо меня тут приплетать :)
я как раз и ни разу filestrim|filetable специально не упоминал.
8 июн 16, 16:59    [19272351]     Ответить | Цитировать Сообщить модератору
 Re: Работа с внешними данными (ссылки)  [new]
Nightingale
Member

Откуда:
Сообщений: 48
iljy,
Следите пожалуйста повнимательнее за событиями происходящими вокруг нас.)))
sql server Developer 2014 с недавних пор стал бесплатным.
https://habrahabr.ru/post/280656/
9 июн 16, 09:58    [19274480]     Ответить | Цитировать Сообщить модератору
 Re: Работа с внешними данными (ссылки)  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Nightingale,

ну так прочитайте для чего он бесплатный или дальше фразы "бесплатный" не читали??
9 июн 16, 10:00    [19274486]     Ответить | Цитировать Сообщить модератору
 Re: Работа с внешними данными (ссылки)  [new]
iljy
Member

Откуда:
Сообщений: 8711
Nightingale
iljy,
Следите пожалуйста повнимательнее за событиями происходящими вокруг нас.)))
sql server Developer 2014 с недавних пор стал бесплатным.
https://habrahabr.ru/post/280656/


За событиями мало следить, их надо еще хоть минимально анализировать. Вы серьезно решили, что ребята сделали полностью бесплатной редакцию, по функционалу эквивалентную Enterprise?
9 июн 16, 10:28    [19274594]     Ответить | Цитировать Сообщить модератору
 Re: Работа с внешними данными (ссылки)  [new]
Nightingale
Member

Откуда:
Сообщений: 48
iljy,

Нет. Конечно же не Ent.
(«cannot be used for production workloads») Но всё же...
9 июн 16, 10:51    [19274671]     Ответить | Цитировать Сообщить модератору
 Re: Работа с внешними данными (ссылки)  [new]
iljy
Member

Откуда:
Сообщений: 8711
Nightingale
iljy,

Нет. Конечно же не Ent.
(«cannot be used for production workloads») Но всё же...


Что не Ent? Developer? По функционалу очень даже Ent, и об этом везде написано. Отличается только лицензией, ну и доступными для установки системами (Ent можно установить только на серверные). И не все же, а "cannot be used". Так что использовать можете только на свой страх и риск.
9 июн 16, 11:10    [19274775]     Ответить | Цитировать Сообщить модератору
 Re: Работа с внешними данными (ссылки)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31446
Nightingale
sql server Developer 2014 с недавних пор стал бесплатным.
Он бесплатный только для процесса разработки.

Nightingale
Да, надо использовать FILESTREAM.
Значит в самой базе это прописываться как строковое поле (напр: \\docs\ghosts\UKRF\blablabla.pdf)
А уже в клиенте реализуется то, что эта строка открывается как гиперссылка.

Я правильно понял?
Нет, неправильно.

FILESTREAM - это некий способ хранения данных в БД. Т.е. есть вам нужно хранить/использовать большие массивы байт, то можно рассматривать в том числе и возможности FILESTREAM

А для вашей задачи (хранить ссылки на документы в файловом хранилище) не нужен FILESTREAM, нужно просто хранить ссылки.
Т.е. нужно сделать в базе, в таблице строковое поле (поле типа nvarchar), и записывать туда ссылку, т.е. строку вида \\docs\ghosts\UKRF\blablabla.pdf
А в программе сделать открытие этого документа.
9 июн 16, 18:44    [19277664]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить