powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Насколько оправданно хранить файлы непосредственно в базе?
6 сообщений из 6, страница 1 из 1
Насколько оправданно хранить файлы непосредственно в базе?
    #32022112
File
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если хранить doc-и прямо в таблице на сколько длительны операции по вставке и чтению?

P.S.Подскажите как вставить файл в поле типа image. Следущее отказывается работать:
TextCopy /S paradise /u dima /P 1 /D db /T Tbl /C FileBody /W "Where FileID=1" /F "c:\test.doc" /I /Z

пишет
TEXTCOPY Version 1.0
DB-Library version 8.00.194
debug: Final parameters:
debug: Server: paradise
debug: Login: dima
debug: Password: 1
debug: Database: db
debug: Table: tbl
debug: Column: FileBody
debug: Where clause: Where FileID=1
debug: File: c:\test.doc
debug: Direction: Into SQL Server from file.
debug: Chunk size: 4096 bytes
SQL Server 'PARADISE' Message 5701: Changed database context
SQL Server 'PARADISE' Message 5701: Changed database context
g line 1)
debug: Query: select FileBody from tbl Where FileID=1
ERROR: Text or image pointer and timestamp retrieval failed.
...
Рейтинг: 0 / 0
Насколько оправданно хранить файлы непосредственно в базе?
    #32022118
Фотография cvasil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Строка с FileID=1 должна уже существовать и поле FileBody
должно быть проинициализировано (должно содержать не NULL, а реальный пойнтер)
Достичь этого можно например так:

delete from tbl where FileID=1
insert tbl values(1, 0x0)

Ну и уж потом textcopy ...
...
Рейтинг: 0 / 0
Насколько оправданно хранить файлы непосредственно в базе?
    #32022122
File
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо получилось!
Вот только читает из файла по 4096 байт - очень медленно!
Выполняю следующее:

EXEC sp_configure 'network packet size', 8192
RECONFIGURE WITH OVERRIDE
GO

отвечает:
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Configuration option 'network packet size (B)' changed from 8192 to 8192. Run the RECONFIGURE statement to install.

хотя я уже запустил RECONFIGURE, читает всеравно по 4096, Что делать?

Большое спасибо!

PS где можно узнать побольше о "...реальный пойнтер.."
...
Рейтинг: 0 / 0
Насколько оправданно хранить файлы непосредственно в базе?
    #32022124
Фотография cvasil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите статьи про readtexе, writetext и updatetext в BOL.
...
Рейтинг: 0 / 0
Насколько оправданно хранить файлы непосредственно в базе?
    #32022201
keystop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!
вот только размер пакета поменять не получается?
...
Рейтинг: 0 / 0
Насколько оправданно хранить файлы непосредственно в базе?
    #32022207
keystop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему-то опять не получается?

TEXTCOPY Version 1.0
DB-Library version 8.00.194
debug: Final parameters:
debug: Server: KEY\INSTANSE
debug: Login: d
debug: Password: 1
debug: Database: db
debug: Table: Tbl
debug: Column: body
debug: Where clause: Where ID=51
debug: File: d:\test\1.doc
debug: Direction: Into SQL Server from file.
debug: Chunk size: 4096 bytes
SQL Server 'KEY\INSTANSE' Message 5701: Changed database context to 'db'.
SQL Server 'KEY\INSTANSE' Message 5701: Changed database context to 'db'. (Concerning line 1)
debug: Query: select body from Tbl Where ID=51
debug: File 'd:\test\1.doc' opened for read
debug: File is 16384 bytes long
debug: Read 4096 bytes from file
debug: Read 4096 bytes from file
debug: Read 4096 bytes from file
debug: Read 4096 bytes from file
debug: Read 0 bytes from file
ERROR: Text or image write failed.
SQL Server 'KEY\INSTANSE' Message 7102: SQL Server Internal Error. Text manager cannot continue with current statement. (Concerning line 1)
SQL Server 'KEY\INSTANSE' Message 3621: The statement has been terminated. (Concerning line 1)

-ID=51 уже существует и заполненно вызов
textcopy /S srv /U d /P 1 /D db /T Tbl /C body /W "Where ID=51" /F "d:\test\1.doc" /I /Z
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Насколько оправданно хранить файлы непосредственно в базе?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]