Показать сообщение отдельно
Старый 30.04.2008, 17:41   #1  
darmen is offline
darmen
Участник
 
3 / 10 (1) +
Регистрация: 30.04.2008
:( Цикл в цикле
Проблема вообще такая
(4-ая Аксапта, MS SQL)

X++:
while select PMPlaceSecurityTimetable
              exists join PlaceId from PMPlaceTimeBoard
                            where PMPlaceTimeBoard.DateStart == PMPlaceSecurityTimetable.DateSecure

       {

         timeList2 = new RecordSortedList(tablenum(PMPlaceTimeBoard));
         timeList2.sortOrder(fieldnum(PMPlaceTimeBoard, PlaceId),fieldnum(PMPlaceTimeBoard, DateStart),
                       fieldnum(PMPlaceTimeBoard, PlannedTimeStart));

        while select PMPlaceTimeBoard1
              where PMPlaceTimeBoard1.DateStart == PMPlaceSecurityTimetable.DateSecure &&
                    PMPlaceTimeBoard1.PlaceId == PMPlaceSecurityTimetable.PlaceId
                {
                   timeList2.ins(PMPlaceTimeBoard1);

                }
Этот код выполняется слишком долго из-за того, что select находиться в while select и поэтому вероятно происходит частое образение к базе, что сильно тормозит работу этого кода. Как можно в данном случае избежать использования второго while select? Подскажите плз..