![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
В mssql вставить в поле типа image данные из другой строки [D5, MSSQL]
Димон1 © (2002-08-16 12:39:00)Есть таблица People в ней есть поле Photo типа image. Нужно взять данные из этого поля и вставить в другую строку этой же таблицы. Делаю запрос:
UPDATE People
SET Photo = (SELECT photo
FROM People
WHERE PeopleID = 34)
WHERE PeopleID = 14
он мне отвечает, что нельзя использовать поле image в подзапросе.
Что посоветуете?
Может быть что-то с курсорами?
sniknik (2002-08-16 19:34:00) [1]Binary Strings
binary
Fixed-length binary data with a maximum length of 8,000 bytes.
varbinary
Variable-length binary data with a maximum length of 8,000 bytes.
image
Variable-length binary data with a maximum length of 2^31 - 1 (2,147,483,647) bytes.
ставь тип имидж влезет.
Димон1 (2002-08-16 18:10:00) [2]>sniknik © (16.08.02 17:05)
разумеется я пробовал. к сожалению более 8000 байт он мне не разрешил, а мне как видете надо 266 КИЛОбайт. и это не предел
sniknik (2002-08-16 17:05:00) [3]а ты втупую пример скопировал? не обратил внимание на размер данных в примере?
DECLARE @cImg binary(16)
Димон1 (2002-08-16 17:01:00) [4]>SaS13 © (16.08.02 14:45)
в исходной ячкйке было 266 килобайт , в целевой оказалось только 16 байт :(
Reindeer Moss Eater (2002-08-16 16:55:00) [5]>Димон1
Подставь в запрос реальные значения PeolpeID, и проверь SET NOCOUNT = OFF
:)
Димон1 (2002-08-16 16:47:00) [6]Fiend © (16.08.02 14:56)
Я выполнил это. Он написал: query executed successfully. Раньше всегда после "апдейта" писал типа "1 Rows affected". А эффекта-то нет. Таблица осталась в прежнем состоянии.
Fiend (2002-08-16 14:56:00) [7]То SaS13
немного усложнили жизнь человеку.
Зачем так если можно в одну строку
UPDATE People
set Photo=P.Photo
FROM People P
WHERE P.PeopleID=34 and PeolpeID=14
SaS13 (2002-08-16 14:45:00) [8]чё нить типа:
DECLARE @cImg binary(16)
SELECT @cImg = TEXTPTR(photo) FROM people WHERE peopleid = 34
UPDATE people SET photo = @cImg WHERE peopleid = 14
Fiend (2002-08-16 14:33:00) [9]Мастера есть!
> он мне отвечает, что нельзя использовать поле image в подзапросе.
Действительно нельзя, читайте БОЛ.
А чтоб можно было сделать то что хоцца, то запрос надо правильно написать
И испоьзовать для этого конструкцию Update FROM
Димон1 (2002-08-16 14:27:00) [10]Тут есть Мастера MSSQL ?