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

Откуда:
Сообщений: 257
Есть рисунок, есть его физ.путь.
Можно средствами T-SQL записать в таблицу этот самый рисунок как image?

Всем спасибо.
15 сен 05, 11:22    [1879762]     Ответить | Цитировать Сообщить модератору
 Re: Добавить рисунок в БД средствами T-SQL  [new]
vooo
Member

Откуда:
Сообщений: 1316
faq
15 сен 05, 11:23    [1879767]     Ответить | Цитировать Сообщить модератору
 Re: Добавить рисунок в БД средствами T-SQL  [new]
hunter79
Member

Откуда:
Сообщений: 257
vooo
faq


читал. наверное я неправильно сформулировал вопрос.

1. есть файл "c:\myimage.jpg", напр.
2. как средствами t-sql (Query Analyzer, напр.) с помощью оператора "insert into.." вставить этот рисунок в базу.

просто мне надо забить базу, а код на чем-либо кроме t-sql писать не хочеться (точнее хочется иметь 1-н скрипт, который будет набывать базу).
15 сен 05, 19:43    [1882298]     Ответить | Цитировать Сообщить модератору
 Re: Добавить рисунок в БД средствами T-SQL  [new]
hunter79
Member

Откуда:
Сообщений: 257
Нашел следующее:
"Copies a single text or image value into or out of SQL Server. The value
is a specified text or image 'column' of a single row (specified by the
"where clause") of the specified 'table'.

If the direction is IN (/I) then the data from the specified 'file' is
copied into SQL Server, replacing the existing text or image value. If the
direction is OUT (/O) then the text or image value is copied from
SQL Server into the specified 'file', replacing any existing file.

TEXTCOPY [/S [sqlserver]] [/U [login]] [/P [password]]
[/D [database]] [/T table] [/C column] [/W"where clause"]
[/F file] [{/I | /O}] [/K chunksize] [/Z] [/?]

/S sqlserver The SQL Server to connect to. If 'sqlserver' is not
specified, the local SQL Server is used.
/U login The login to connect with. If 'login' is not specified,
a trusted connection will be used.
/P password The password for 'login'. If 'password' is not
specified, a NULL password will be used.
/D database The database that contains the table with the text or
image data. If 'database' is not specified, the default
database of 'login' is used.
/T table The table that contains the text or image value.
/C column The text or image column of 'table'.
/W "where clause" A complete where clause (including the WHERE keyword)
that specifies a single row of 'table'.
/F file The file name.
/I Copy text or image value into SQL Server from 'file'.
/O Copy text or image value out of SQL Server into 'file'.
/K chunksize Size of the data transfer buffer in bytes. Minimum
value is 1024 bytes, default value is 4096 bytes.
/Z Display debug information while running.
/? Display this usage information and exit.

You will be prompted for any required options you did not specify."

сделал процедуру:
"CREATE PROCEDURE proc_TextCopy (
@SrvName VARCHAR(30),
@Login VARCHAR(30),
@Password VARCHAR(30),
@DbName VARCHAR(30),
@TbName VARCHAR(30),
@ColName VARCHAR(30),
@FileName VARCHAR(30),
@WhereClause VARCHAR(40),
@Direction VARCHAR(1)
)
AS BEGIN
DECLARE @ExecStr VARCHAR(255)
SELECT @ExecStr =
'textcopy /S ' + @SrvName +
' /U ' + @Login +
' /P ' + @Password +
' /D ' + @DbName +
' /T ' + @TbName +
' /C ' + @ColName +
' /W "' + @WhereClause +
'" /F ' + @FileName +
' /' + @Direction +
' /Z'
EXEC master..xp_cmdshell @ExecStr
END
GO"

но когда делаю:
"exec proc_TextCopy @SrvName = '(local)', @Login = 'sa', @Password = 'xxx', @DbName = 'Weather', @TbName = 'Map',
@ColName = 'MapImage', @FileName = 'C:\Utils\MyMapUkraine.bmp', @WhereClause = ' WHERE AreaID=0 ', @Direction = 'I'"

оно ругается:
""textcopy" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
NULL"

Вот.
15 сен 05, 21:07    [1882374]     Ответить | Цитировать Сообщить модератору
 Re: Добавить рисунок в БД средствами T-SQL  [new]
Glory
Member

Откуда:
Сообщений: 104760
оно ругается:
""textcopy" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
NULL"

Вот.

Ну так у вас на сервере есть файл textcopy.exe ?
15 сен 05, 21:41    [1882398]     Ответить | Цитировать Сообщить модератору
 Re: Добавить рисунок в БД средствами T-SQL  [new]
ALQ
Member

Откуда: От туда
Сообщений: 1013
textcopy - это уже не средство T-SQL, а отдельная утилитка,
ее можно запускать при помощи xp_cmdshell
16 сен 05, 09:54    [1882976]     Ответить | Цитировать Сообщить модератору
 Re: Добавить рисунок в БД средствами T-SQL  [new]
hunter79
Member

Откуда:
Сообщений: 257
Теперь пошло, но сама textcopy ругается:
"ERROR: Text or image pointer and timestamp retrieval failed."
16 сен 05, 10:07    [1883042]     Ответить | Цитировать Сообщить модератору
 Re: Добавить рисунок в БД средствами T-SQL  [new]
Latuk
Member

Откуда: N 54°38', E 037°35'
Сообщений: 7310
https://www.sql.ru/forum/actualthread.aspx?bid=1&tid=145809&hl=bcp+fmt
16 сен 05, 10:35    [1883218]     Ответить | Цитировать Сообщить модератору
 Re: Добавить рисунок в БД средствами T-SQL  [new]
Glory
Member

Откуда:
Сообщений: 104760
hunter79
Теперь пошло, но сама textcopy ругается:
"ERROR: Text or image pointer and timestamp retrieval failed."

При update-е BLOB cтолбец не должен быть NULL.
16 сен 05, 10:55    [1883365]     Ответить | Цитировать Сообщить модератору
 Re: Добавить рисунок в БД средствами T-SQL  [new]
hunter79
Member

Откуда:
Сообщений: 257
Glory
hunter79
Теперь пошло, но сама textcopy ругается:
"ERROR: Text or image pointer and timestamp retrieval failed."

При update-е BLOB cтолбец не должен быть NULL.


Согласен. Уже сделал.
16 сен 05, 14:03    [1884588]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить