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

Откуда:
Сообщений: 3
доброго времени суток.
Задача следующая:
Необходимо загружать бинарные файлы с клиентской машины в поле типа varbinary(max) таблицы на сервере.
(Компилятор - mingw (c++))
Решения которые накопал в интернете:
1. Записать файл в папку, видимую для сервера и уже из неё загружать файл с использованием INSERT ... SELECT * FROM OPENROWSET(BULK...)
- не совсем подходит, т.к. усложняет инсталяшку в части возни с сетевыми папками и конфигами, описывающими пути к ним
2. Использовать CLR
- не подходит, т.к. основное приложение дб написано на c++.
3. Писать отдельный бинарник в билдере с использованием компонентов ADO и передавать ему входными параметрами строку соединения и путь к файлу.
Вариант 3 подходит больше, хотя, возможно есть решения покрасивее и проще? может быть можно применить bcp?
10 ноя 09, 23:20    [7910959]     Ответить | Цитировать Сообщить модератору
 Re: загрузка файла на сервер в поле varbinary(max)  [new]
Denis Reznik
Member

Откуда: Киев
Сообщений: 156
Если у вас 2008 SQL Server, то можно использовать FILESTREAM - http://msdn.microsoft.com/ru-ru/library/bb933993.aspx. В таком случае получаете преимущеcтва потокового доступа к файлам + целостность информации. Сам на c++ не пишу, но помнится была воможность работать с FILESTREAM с помощью WinApi функций.
11 ноя 09, 04:46    [7911378]     Ответить | Цитировать Сообщить модератору
 Re: загрузка файла на сервер в поле varbinary(max)  [new]
ok-hockey
Member

Откуда:
Сообщений: 3
СУБД - MS SQL Server 2005. Насколько я знаю поддержки FILESTREAM там нет
11 ноя 09, 06:32    [7911417]     Ответить | Цитировать Сообщить модератору
 Re: загрузка файла на сервер в поле varbinary(max)  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
ok-hockey
доброго времени суток.
Задача следующая:
Необходимо загружать бинарные файлы с клиентской машины в поле типа varbinary(max) таблицы на сервере.
(Компилятор - mingw (c++))

да пофиг каккой компилятор, через чего бьётесь к серверу native или ODBC ?
ok-hockey

Решения которые накопал в интернете:
применить bcp?

каждое специфично, но стоило начать с msdn.
Вот статья, для начала.
кроме того, совсем не понимаю почему неоткрыли хелп по ADO, там прекрасно расписано как грузить бинарные данные.
11 ноя 09, 07:38    [7911465]     Ответить | Цитировать Сообщить модератору
 Re: загрузка файла на сервер в поле varbinary(max)  [new]
Supra93
Member

Откуда:
Сообщений: 8174
Если ADO то
TBlobField
11 ноя 09, 08:40    [7911547]     Ответить | Цитировать Сообщить модератору
 Re: загрузка файла на сервер в поле varbinary(max)  [new]
ok-hockey
Member

Откуда:
Сообщений: 3
пофиг какой компилятор? пример на c++ чтобы компилился в mingw (без надъязыковых надстроек) в студию, то что написано в Вот статья, для начала - это clr, или я ошибаюсь?
11 ноя 09, 22:04    [7917049]     Ответить | Цитировать Сообщить модератору
 Re: загрузка файла на сервер в поле varbinary(max)  [new]
Glory
Member

Откуда:
Сообщений: 104760
ok-hockey
пофиг какой компилятор? пример на c++ чтобы компилился в mingw (без надъязыковых надстроек) в студию, то что написано в Вот статья, для начала - это clr, или я ошибаюсь?

Это не clr. Это пример для клиентского приложение. Которое ваш пользователь будет запускать у себя на машине
12 ноя 09, 10:36    [7918412]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить