Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.26;
Скачать: CL | DM;

Вниз

Переменные типа image в скрипте   Найти похожие ветки 

 
Ega23 ©   (2006-01-30 19:08) [0]

Есть проблема.

Имеется следующая временная таблица:

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 заводить нельзя.

Что делать?


 
Nikolay M. ©   (2006-01-30 20:22) [1]

А нафиг здесь вообще курсор?

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


 
Ega23 ©   (2006-01-31 08:56) [2]


> А нафиг здесь вообще курсор?


Коля, спсибо, сам вчера допёр.  Просто у меня тырнет в 20:00 отрубают...  :о)
Хотя курсор всё равно нужен. Правда для других целей.


 
Nikolay M. ©   (2006-01-31 10:08) [3]

Да не за что, собственно.
Но я все равно за то, чтобы обходиться без курсоров - уж очень они ресурсоемкие. В 99% случаев достаточно автоинкрементного ID и обычного  цикла

WHILE (@ID IS NOT NULL)
...
SELECT
 @ID = (SELECT MIN(ID) FROM #tab WHERE ID > @ID)


 
Polevi ©   (2006-01-31 14:42) [4]

>Nikolay M. ©   (31.01.06 10:08) [3]
ну ты это зависит от колва данных и запроса к ним



Страницы: 1 вся ветка

Текущий архив: 2006.03.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.042 c
1-1140431149
VEZ
2006-02-20 13:25
2006.03.26
TActionToolBar


2-1141993956
fedpavel
2006-03-10 15:32
2006.03.26
DLL


6-1133872760
V-A-V
2005-12-06 15:39
2006.03.26
Автологин на прокси сервер


15-1141570417
Lomant
2006-03-05 17:53
2006.03.26
Тональность


2-1142136727
setis
2006-03-12 07:12
2006.03.26
Погогите сделать SELECT