![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Переменные типа image в скрипте [MSSQL]
Ega23 © (2006-01-30 19:08:00)Есть проблема.
Имеется следующая временная таблица:
Create Table #Temp_AccMetPL
(
ObjID int,
ObjOwner int,
ObjNam varchar(64),
ObjImg image,
HasOperMet tinyint,
HasAdmMet tinyint
);
Надо обойти её курсором по ObjID и сделать Update для поля ObjImg. А точнее - взять его из другой таблицы.
Делаю так:
Declare Cur Cursor Local Static for
Select ObjId from #Temp_AccMetPL;
Open Cur;
While (0=0)
begin
Fetch Next from Cur into @x;
if @@FETCH_STATUS <> 0 BREAK;
Update #Temp_AccMetPL Set
ObjImg=(
Select C.CLSImg
from Classes C, ObjectClasses OC
where C.CLSID=OC.CLSID and OC.ObjID=@x
)
where ObjID=@x;
end;
Close Cur;
Deallocate Cur;
Всё бы ничего, но:
The text, ntext, and image data types are invalid in this subquery or aggregate expression.
Локальную-же переменную типа image заводить нельзя.
Что делать?
Polevi (2006-01-31 14:42:00) [1]>Nikolay M. © (31.01.06 10:08) [3]
ну ты это зависит от колва данных и запроса к ним
Nikolay M. (2006-01-31 10:08:00) [2]Да не за что, собственно.
Но я все равно за то, чтобы обходиться без курсоров - уж очень они ресурсоемкие. В 99% случаев достаточно автоинкрементного ID и обычного цикла
WHILE (@ID IS NOT NULL)
...
SELECT
@ID = (SELECT MIN(ID) FROM #tab WHERE ID > @ID)
Ega23 (2006-01-31 08:56:00) [3]
> А нафиг здесь вообще курсор?
Коля, спсибо, сам вчера допёр. Просто у меня тырнет в 20:00 отрубают... :о)
Хотя курсор всё равно нужен. Правда для других целей.
Nikolay M. (2006-01-30 20:22:00) [4]А нафиг здесь вообще курсор?
UPDATE
#Temp_AccMetPL
SET
ObjImg = C.CLSImg
FROM
#Temp_AccMetPL ampl,
Classes C,
ObjectClasses OC
WHERE
C.CLSID = OC.CLSID
AND OC.ObjID = ampl.ObjID