Главная страница
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.035 c
15-1141471539
DenMaster
2006-03-04 14:25
2006.03.26
Помогите найти программу:


15-1141411309
Лёха
2006-03-03 21:41
2006.03.26
MiniExel на паскале ;)


15-1141713885
Ega23
2006-03-07 09:44
2006.03.26
С Днём рождения! 7 марта


2-1142269570
alone
2006-03-13 20:06
2006.03.26
Система


2-1141668489
vital538
2006-03-06 21:08
2006.03.26
FireBird