Rambler's Top100
Главная
Новости
Статьи
Форумы
Книги
Коды
Сообщество
Блоги
О нас
 

Логин

Email:
  Пароль:

Войти
Зарегистрироваться
Забыл пароль

Поиск

 Искать :
 
Вперед

Сообщение

Игорь Т.


Старейшина

Зарегистрирован:
29 September 2002
Сообщения: 647
Примеры кода: 2
 

Проблемы с процедурой

04 December 2002 18:50  


Пишу процедуру типа выборки/разбиения на страницы/сортировки. После некоторого раздумья, сваял след. код:


CREATE PROCEDURE Admin_Inst_SelectInst
(
	@FilterCityID int = 0,
	@PageSize int = 10,
	@PageNumber int = 1,
	@SortColumn varchar(15) = "InstID",
	@SortOrder varchar(4) = "ASC"
) 
AS

	SET NOCOUNT ON

	DECLARE @FirstRecord int
	DECLARE @RecordCount int
	DECLARE @TempSize int
	DECLARE @StartID int
	
	CREATE TABLE #TempItems
	(
		RecID int IDENTITY,
		InstID int,
		InstName varchar(50),
		CityID int,
		CityName varchar(50),
		CreatedDate datetime
	)
	
	SELECT @RecordCount = Count(InstID) FROM viewInstitutions 
	WHERE 
		CityID >= @FilterCityID AND 
			(CityID * @FilterCityID = @FilterCityID OR CityID = @FilterCityID)

	SET @FirstRecord = (@PageNumber-1) * @PageSize + 1
	SET @TempSize = (@PageNumber-1) * @PageSize +  @PageSize

	IF(@FirstRecord <= @RecordCount)
	BEGIN
	    SET ROWCOUNT @TempSize
	    
	    IF (@SortOrder = 'ASC')
			INSERT INTO #TempItems(InstID,InstName,CityID,CityName,CreatedDate)
			SELECT InstID,InstName,CityID,CityName,CreatedDate FROM viewInstitutions
				WHERE 
					CityID >= @FilterCityID AND 
					(CityID * @FilterCityID = @FilterCityID OR CityID = @FilterCityID)
				ORDER BY
				CASE @SortColumn
					When 'InstID' Then InstID
					When 'InstName' Then InstName
					When 'CityName' Then CityName
					When 'CreatedDate' Then CreatedDate
				END
			ASC
		ELSE
			INSERT INTO #TempItems(InstID,InstName,CityID,CityName,CreatedDate)
			SELECT InstID,InstName,CityID,CityName,CreatedDate FROM viewInstitutions
				WHERE 
					CityID >= @FilterCityID AND 
					(CityID * @FilterCityID = @FilterCityID OR CityID = @FilterCityID)
				ORDER BY
				CASE @SortColumn
					When 'InstID' Then InstID
					When 'InstName' Then InstName
					When 'CityName' Then CityName
					When 'CreatedDate' Then CreatedDate
				END
			DESC
	    
	    
	    SET ROWCOUNT @PageSize
	    
		Select * From #TempItems where RecID >=@FirstRecord

	END
	ELSE
	BEGIN
		Select * From #TempItems
	END

	--Select * From Cities order by CityName asc
	
	SET NOCOUNT OFF
GO


с разбиением проблем никаких. С замиранием сердца пишу

Admin_Inst_SelectInst 24,5,1,'InstID'

работает! продолжаю:

Admin_Inst_SelectInst 24,5,1,'CityName'

Болт. В пять утра дрожь в коленках, мигрень и все такое.


Syntax error converting datetime from character string.

сводит меня с ума. Что делать?Озадаченность
We take I.T. easy!
Наверх
  



ADO.NET

 Проблемы с процедуройИгорь Т.  04 December 2002 18:50
 RE: Проблемы с процедуройleo  16 December 2002 20:28
 RE: Проблемы с процедуройDimon aka Manowar  04 December 2002 19:32
 RE[2]: Проблемы с процедуройИгорь Т.  05 December 2002 18:45
 RE[3]: Проблемы с процедуройDimon aka Manowar  05 December 2002 19:10
 RE[4]: Проблемы с процедуройИгорь Т.  05 December 2002 19:14
 RE[5]: Проблемы с процедуройDimon aka Manowar  05 December 2002 19:31
 RE[6]: Проблемы с процедуройИгорь Т.  05 December 2002 19:34
 
Наш Киев

Apartments for Rent

Rambler's Top100
Рейтинг@Mail.ru
Идея: Dimon aka Manowar Программирование: Dimon aka Manowar Дизайн: Dan Lebedev
Хостинг от компании Parking.ru
Карта сайта