Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

В 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 ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо