Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4   вперед  Ctrl      все
 Re: Работа с документооборотом, технология FileStream  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Prolog, это просто дикий ужас.
Вы читает файл в с диска в оперативку скуля чтобы записать на диск.
Это тоже самое что зайти удалённо на другую машину и переместить локальный файл с "рабочего стола" в "мои документы". Офигенно оптимально.
Это я не говорю про наличии динамики. Не парте девушке моск и не учите дурному.
2 июн 11, 16:30    [10754156]     Ответить | Цитировать Сообщить модератору
 Re: Работа с документооборотом, технология FileStream  [new]
Prolog
Member

Откуда: Москва
Сообщений: 2793
Mnior, согласен. Научите умному.
2 июн 11, 16:32    [10754184]     Ответить | Цитировать Сообщить модератору
 Re: Работа с документооборотом, технология FileStream  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Банально copy чё нельзя сделать?
А лучше через программный код и/или CLR. Хотя она от такого уйдёт в осадок.
2 июн 11, 16:33    [10754194]     Ответить | Цитировать Сообщить модератору
 Re: Работа с документооборотом, технология FileStream  [new]
Lesimel
Member

Откуда:
Сообщений: 32
Prolog,
set quoted_identifier, ansi_nulls on
go
CREATE PROC PResultWorkINSERT
  @LoadDoc      VARCHAR(max),
  @Ik_ReqWork   INT,
  @idUspevDocs  INT
as
  set nocount on

  DECLARE @sql nvarchar(4000)
  SELECT  @sql = N'SELECT newid(),'+CAST(@Ik_ReqWork as nvarchar)+N','+CAST(@idUspevDocs as nvarchar)+N',* FROM OPENROWSET(BULK N'''+@LoadDoc+''', SINGLE_BLOB) AS Document'
PRINT @sql
  INSERT INTO dbo.ResultWork(Ik_ResultWork,Ik_ReqWork,idUspevDocs,LoadDoc) EXECUTE(@sql)

  RETURN @@error
go

EXEC PResultWorkINSERT
1,1,'net_share.bmp'

все равно та же ошибка : Ошибка при преобразовании типа данных varchar к int.
2 июн 11, 16:35    [10754209]     Ответить | Цитировать Сообщить модератору
 Re: Работа с документооборотом, технология FileStream  [new]
Lesimel
Member

Откуда:
Сообщений: 32
Mnior
Банально copy чё нельзя сделать?
А лучше через программный код и/или CLR. Хотя она от такого уйдёт в осадок.


Так так так, не надо издеваться
2 июн 11, 16:38    [10754229]     Ответить | Цитировать Сообщить модератору
 Re: Работа с документооборотом, технология FileStream  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Lesimel, не спешите, главное что бы вы поняли, а не тупо сделали.
2 июн 11, 16:38    [10754237]     Ответить | Цитировать Сообщить модератору
 Re: Работа с документооборотом, технология FileStream  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Lesimel, опишите как вы себе представляете процесс. Пошагово (1,2,3 ...) если не точно, то своими словами.
2 июн 11, 16:41    [10754260]     Ответить | Цитировать Сообщить модератору
 Re: Работа с документооборотом, технология FileStream  [new]
Lesimel
Member

Откуда:
Сообщений: 32
Lesimel
Prolog,
set quoted_identifier, ansi_nulls on
go
CREATE PROC PResultWorkINSERT
  @LoadDoc      VARCHAR(max),
  @Ik_ReqWork   INT,
  @idUspevDocs  INT
as
  set nocount on

  DECLARE @sql nvarchar(4000)
  SELECT  @sql = N'SELECT newid(),'+CAST(@Ik_ReqWork as nvarchar)+N','+CAST(@idUspevDocs as nvarchar)+N',* FROM OPENROWSET(BULK N'''+@LoadDoc+''', SINGLE_BLOB) AS Document'
PRINT @sql
  INSERT INTO dbo.ResultWork(Ik_ResultWork,Ik_ReqWork,idUspevDocs,LoadDoc) EXECUTE(@sql)

  RETURN @@error
go

EXEC PResultWorkINSERT
1,1,'net_share.bmp'

все равно та же ошибка : Ошибка при преобразовании типа данных varchar к int.



знаете что мне вообще не понятно? зачем мы переводим @Ik_ReqWork в начале интавское значение(FOREIGN KEY) в nvarchar?
2 июн 11, 16:43    [10754284]     Ответить | Цитировать Сообщить модератору
 Re: Работа с документооборотом, технология FileStream  [new]
Prolog
Member

Откуда: Москва
Сообщений: 2793
Lesimel, у меня PRINT вернул то, что надо:

SELECT newid(),1,1,* FROM OPENROWSET(BULK N'net_share.bmp', SINGLE_BLOB) AS Document

Кстати, вы не указали путь к файлу. И имейте в виду, что для SQL-сервера, например, C:\ - это диск на самом SQL-сервере, а вовсе не на том компьютере, где выбирали файл в диалоговом окне.
2 июн 11, 16:46    [10754310]     Ответить | Цитировать Сообщить модератору
 Re: Работа с документооборотом, технология FileStream  [new]
Prolog
Member

Откуда: Москва
Сообщений: 2793
Lesimel
знаете что мне вообще не понятно? зачем мы переводим @Ik_ReqWork в начале интавское значение(FOREIGN KEY) в nvarchar?
У вас ошибка не в этом. У вас ошибка в том, что неверно сформировалась строка в @sql.
2 июн 11, 16:49    [10754337]     Ответить | Цитировать Сообщить модератору
 Re: Работа с документооборотом, технология FileStream  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Mnior
Lesimel, опишите как вы себе представляете процесс. Пошагово (1,2,3 ...) если не точно, то своими словами.
2 июн 11, 16:50    [10754343]     Ответить | Цитировать Сообщить модератору
 Re: Работа с документооборотом, технология FileStream  [new]
Lesimel
Member

Откуда:
Сообщений: 32
Mnior
Lesimel, опишите как вы себе представляете процесс. Пошагово (1,2,3 ...) если не точно, то своими словами.


на уровне приложения? я пока не реализую приложение, а только БД
Но это примерно так
Студент выбирает работу которую ему надо загрузить,нажимает загрузить документ, открывается окно, где можно выбираешь файл на своем компе, нажимаем ОК, и в строке появляется полный адрес загружаемого файла жмем ОК он отправляется на сервер все как обычно :)
2 июн 11, 16:50    [10754350]     Ответить | Цитировать Сообщить модератору
 Re: Работа с документооборотом, технология FileStream  [new]
Lesimel
Member

Откуда:
Сообщений: 32


К сообщению приложен файл. Размер - 137Kb
2 июн 11, 16:57    [10754409]     Ответить | Цитировать Сообщить модератору
 Re: Работа с документооборотом, технология FileStream  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Lesimel
Студент выбирает работу которую ему надо загрузить,нажимает загрузить документ, открывается окно, где можно выбираешь файл на своем компе, нажимаем ОК, и в строке появляется полный адрес загружаемого файла жмем ОК он отправляется на сервер все как обычно :)


1. Взять тему дипломного проекта
2. Зайти на скуль
3. Написать ПРОЦЕДУРУ, которая будет делать: вжииииик, ну и все заработало. Как обычно.
4. ...
5. Profit

Ниче не забыл?
2 июн 11, 16:58    [10754420]     Ответить | Цитировать Сообщить модератору
 Re: Работа с документооборотом, технология FileStream  [new]
Prolog
Member

Откуда: Москва
Сообщений: 2793
Lesimel
на уровне приложения? я пока не реализую приложение, а только БД
Но это примерно так
Студент выбирает работу которую ему надо загрузить,нажимает загрузить документ, открывается окно, где можно выбираешь файл на своем компе, нажимаем ОК, и в строке появляется полный адрес загружаемого файла жмем ОК он отправляется на сервер все как обычно :)

Minor хочет, чтобы вы изучили методы загрузки FILESTREAM, примеры на которые данные в его второй ссылке здесь.
2 июн 11, 16:58    [10754423]     Ответить | Цитировать Сообщить модератору
 Re: Работа с документооборотом, технология FileStream  [new]
Lesimel
Member

Откуда:
Сообщений: 32
извиняюсь какая-то она большая вышла...
Это схема
UspevKPTheme сущность самой работы, ResultWork это результат работы, т.е. таблица где есть ссылка на этот документ
2 июн 11, 17:00    [10754439]     Ответить | Цитировать Сообщить модератору
 Re: Работа с документооборотом, технология FileStream  [new]
Konst_One
Member

Откуда:
Сообщений: 11621
студенты ваши не смогут загрузить файлик с удалённого компа на ваш сервер, тут вам надо сесть и ещё раз подумать на эту тему, почитать про клиент-серверные технологии и тд и тп
2 июн 11, 17:03    [10754468]     Ответить | Цитировать Сообщить модератору
 Re: Работа с документооборотом, технология FileStream  [new]
Lesimel
Member

Откуда:
Сообщений: 32
Prolog
Lesimel
на уровне приложения? я пока не реализую приложение, а только БД
Но это примерно так
Студент выбирает работу которую ему надо загрузить,нажимает загрузить документ, открывается окно, где можно выбираешь файл на своем компе, нажимаем ОК, и в строке появляется полный адрес загружаемого файла жмем ОК он отправляется на сервер все как обычно :)

Minor хочет, чтобы вы изучили методы загрузки FILESTREAM, примеры на которые данные в его второй ссылке здесь.


там описано как на уровне приложения, а мне надо в базе данных...
2 июн 11, 17:19    [10754568]     Ответить | Цитировать Сообщить модератору
 Re: Работа с документооборотом, технология FileStream  [new]
SamMan
Member

Откуда: Moscow
Сообщений: 759
Konst_One
студенты ваши не смогут загрузить файлик с удалённого компа на ваш сервер


Это почему еще? Когда вы шлете на проверку файл со своего лок-компа он-лайн антивирусу файл оказывается хрен знает где... в т.ч. и "на ваш сервер". Все зависит от реализации клиента / сервера приложения, о реализации которых ТС неосмотрительно думать пока не хочет. Она подумает над ними потом, когда БД-часть будет готова и отлажена и ничего исправить уже будет нельзя.
2 июн 11, 17:22    [10754595]     Ответить | Цитировать Сообщить модератору
 Re: Работа с документооборотом, технология FileStream  [new]
Konst_One
Member

Откуда:
Сообщений: 11621
SamMan
Konst_One
студенты ваши не смогут загрузить файлик с удалённого компа на ваш сервер


Это почему еще? Когда вы шлете на проверку файл со своего лок-компа он-лайн антивирусу файл оказывается хрен знает где... в т.ч. и "на ваш сервер". Все зависит от реализации клиента / сервера приложения, о реализации которых ТС неосмотрительно думать пока не хочет. Она подумает над ними потом, когда БД-часть будет готова и отлажена и ничего исправить уже будет нельзя.


я описал именно решение ТС, которое в данном случае не работоспособно. сервер никоим образом про файлы на компах некого студента знать не знает
2 июн 11, 17:24    [10754612]     Ответить | Цитировать Сообщить модератору
 Re: Работа с документооборотом, технология FileStream  [new]
SamMan
Member

Откуда: Moscow
Сообщений: 759
Lesimel
там описано как на уровне приложения, а мне надо в базе данных


Как Вы объясняете вам нужно И на уровне приложения, И в базе данных, И (не исключено что) на уровне апликейшен-сервера. И не факт что надо начинать раздумья со второго...
2 июн 11, 17:26    [10754629]     Ответить | Цитировать Сообщить модератору
 Re: Работа с документооборотом, технология FileStream  [new]
Lesimel
Member

Откуда:
Сообщений: 32
SamMan
Lesimel
там описано как на уровне приложения, а мне надо в базе данных


Как Вы объясняете вам нужно И на уровне приложения, И в базе данных, И (не исключено что) на уровне апликейшен-сервера. И не факт что надо начинать раздумья со второго...


Я это понимаю, просто над разработкой приложения я приступлю только через полгода, а базу мне сдавать уже сейчас надо
2 июн 11, 17:30    [10754673]     Ответить | Цитировать Сообщить модератору
 Re: Работа с документооборотом, технология FileStream  [new]
Prolog
Member

Откуда: Москва
Сообщений: 2793
Lesimel, В итоге, у вас заработала процедура? Если закоментировать insert - сообщение об ошибке исчезнет?
2 июн 11, 17:35    [10754729]     Ответить | Цитировать Сообщить модератору
 Re: Работа с документооборотом, технология FileStream  [new]
Lesimel
Member

Откуда:
Сообщений: 32
Prolog
Lesimel, В итоге, у вас заработала процедура? Если закоментировать insert - сообщение об ошибке исчезнет?


set quoted_identifier, ansi_nulls on
go
CREATE PROC PResultWorkINSERT
  @LoadDoc      VARCHAR(max),
  @Ik_ReqWork   INT,
  @idUspevDocs  INT
as
  set nocount on

  DECLARE @sql nvarchar(4000)
  SELECT  @sql = N'SELECT newid(),'+CAST(@Ik_ReqWork as nvarchar)+N','+CAST(@idUspevDocs as nvarchar)+N',* FROM OPENROWSET(BULK N'''+@LoadDoc+''', SINGLE_BLOB) AS Document'
PRINT @sql
  ----INSERT INTO dbo.ResultWork(Ik_ResultWork,Ik_ReqWork,idUspevDocs,LoadDoc)  EXECUTE(@sql)

  RETURN @@error
go

EXEC PResultWorkINSERT
'net_share.bmp',1,1
Сообщение: SELECT newid(),1,1,* FROM OPENROWSET(BULK N'net_share.bmp', SINGLE_BLOB) AS Document


Спасибо огромное :)
2 июн 11, 18:07    [10754940]     Ответить | Цитировать Сообщить модератору
 Re: Работа с документооборотом, технология FileStream  [new]
Lesimel
Member

Откуда:
Сообщений: 32
Prolog,
только при SELECT * FROM ResultWork
он не выводит этот файл
2 июн 11, 18:11    [10754966]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить