parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

правда правда

agat 18.06.2007 16:22

поправил чуток код, вроде все норм стало
################################################
@moveGroup[hParams][iShift]
$iShift(^math:sign($hParams.newOrderPosition - $hParams.orderPosition))
^if($iShift){
	^oSql.void{
		UPDATE
			groups
		SET
			orderPosition = orderPosition - ($iShift)
		WHERE
			^if($iShift > 0){
				orderPosition >= ^hParams.orderPosition.int(0) + 1
				AND orderPosition <= ^hParams.newOrderPosition.int(0)
			}{
				orderPosition > ^hParams.newOrderPosition.int(0)
				AND orderPosition <= ^hParams.orderPosition.int(0) - 1
			}
	}
	^oSql.void{
		UPDATE
			groups
		SET
			orderPosition = ^hParams.newOrderPosition.int(0) ^if($iShift < 0){ + 1}
		WHERE
			id = ^hParams.id.int(0)
	}
}
# end of @moveGroup[]
В противном случае, при попытке переместить первую группу на место пятой, имели пятую группу с номером 6. И так росло до бесконечности. И при попытке сменить пятую на первую - имели две первых.