30.04.2008, 17:52
|
#3
|
Участник
Регистрация: 16.11.2004
Адрес: г. Калгари, Канада
|
Цитата:
Сообщение от darmen
Проблема вообще такая
(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? Подскажите плз..
X++: timeList2 = new RecordSortedList(tablenum(PMPlaceTimeBoard));
timeList2.sortOrder(fieldnum(PMPlaceTimeBoard, PlaceId),
fieldnum(PMPlaceTimeBoard, DateStart),
fieldnum(PMPlaceTimeBoard, PlannedTimeStart));
while select PMPlaceSecurityTimetable
join PMPlaceTimeBoard
where PMPlaceTimeBoard.DateStart == PMPlaceSecurityTimetable.DateSecure
&& PMPlaceTimeBoard.PlaceId == PMPlaceSecurityTimetable.PlaceId
{
timeList2.ins(PMPlaceTimeBoard);
} Вот так?
__________________
С уважением, Dozer
Последний раз редактировалось Dozer; 30.04.2008 в 22:25.
Причина: Опечатка
|
|