Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.03.05;
Скачать: [xml.tar.bz2];

Вниз

Глюк QA?   Найти похожие ветки 

 
Ega23 ©   (2006-02-10 15:12) [0]

есть процедура:

Print  "S_AccountProc - процедура для работы с системой доступа"
go
if exists (select * from sysobjects where id = object_id(N"[S_AccountProc]") and OBJECTPROPERTY(id, N"IsProcedure") = 1)
drop procedure [S_AccountProc]
GO

CREATE PROCEDURE S_AccountProc

@ActNam varchar(32)="NONE",
 
@LoginNam varchar(16) ="",
@Passwd varchar(16) ="",
@PCNam varchar(32) ="",
@DatIn datetime =0,

@AccID int =-1,
@RoleID int =-1,
@ArmID int =-1,

-- Остальные входные параметры (для Select"ов)
@ObjID int = -1,

@OutMess varchar(8000) ="" output,

-- Debug Information
@SelOut int = 1,
 @Debug int =0

As
declare  
 @LogObjGUID uniqueidentifier,
 @result int,
 @x int,
 @DatOut0 datetime,
 @PersNam varchar(255),
 @ARMNam varchar(255),
 @RoleNam varchar(255);

Set NoCount ON;
Set @Result=0;
Set @OutMess="";
Select @ActNam=RTrim(LTrim(UPPER(@ActNam)));

--------------------------------------------------------------------------------------------------------------

if @ActNam="DOLOGIN"
begin

Set @AccID=-1;

Select @AccID=ObjID
  from Account
  where LoginNam=@LoginNam;

if @AccID=-1
 begin
  Set @OutMess="Пользователь не зарегистрирован";
  Goto Fin_DOLOGIN  
 end;

Set @AccID=-1;

Select @AccID=ObjID
  from Account
  where LoginNam=@LoginNam and Passwd=@Passwd;

if @AccID=-1
 begin
  Set @OutMess="Неверный пароль";
  Goto Fin_DOLOGIN  
 end;

Set @AccID=-1;

Select @AccID=ObjID
  from Account
  where LoginNam=@LoginNam and Passwd=@Passwd and DatOut>getdate();

if @AccID=-1
 begin
  Set @OutMess="Срок действия учётной записи истёк";
  Goto Fin_DOLOGIN  
 end;

Select @PersNam=P.PersNam1+" "+P.PersNam2+" "+P.PersNam3
 from Pers P, Account A
 where P.PersID=A.PersID and A.ObjID=@AccID;

........................

Fin_DOLOGIN:

Set NoCount OFF;
Select AccID=@AccID, RoleID=@RoleID, ARMID=@ARMID, OutMess=@OutMess;

Goto Fin;
end;

--------------------------------------------------------------------------------------------------------------
fin:
set nocount off;
return(@result);

GO


Таблица Account в базе присутствует.
Меняю

Select @AccID=ObjID
  from Account
  where LoginNam=@LoginNam;

на

Select @AccID=ObjID
  from Accountволпоыаои
  where LoginNam=@LoginNam;


и по F5 загоняю процедуру на сервер.
Ошибок не выдаёт.
Ошибка выдаётся только при попытке выполнения SP.

Вопрос: в чём дело???


 
paul_k ©   (2006-02-10 15:30) [1]

При создании процедуры наличие таблиц не проверяется. проверяется только при исполнении
то есть
create proc ff
as
 select* from blablabla
отработает на ура.
а вот то, что таблицы такой нет ты узнаешь только запустив процедуру


 
Ega23 ©   (2006-02-10 15:31) [2]

Блин, ну раньше, вроде, проверка-то была? Или у меня глюки???


 
Bless ©   (2006-02-10 15:42) [3]

Имхо, проверки на существование таблицы не было.
Вот столбцы проверяло
Т.е.
select * from tab1 - не ругается, если tab1 нет
select * from tab1 where column1=10 - ругается, если таблица tab1 есть, а столбца column1 нет.

Кажись так.


 
Ega23 ©   (2006-02-10 15:45) [4]

Значит у меня глюки...
Понятно...


 
Nikolay M. ©   (2006-02-10 15:52) [5]


> Блин, ну раньше, вроде, проверка-то была?


Не было. А поскольку план выполнения строится при первом запуске ХП (при отсутствии поции WITH RECOMPILE), а не при ее создании, то ошибка появляется именно при запуске.


 
Ega23 ©   (2006-02-10 15:56) [6]


> при отсутствии поции


Хорошая очепятка...  :о)


 
Nikolay M. ©   (2006-02-10 16:10) [7]


> Ega23 ©   (10.02.06 15:56) [6]
>
> > при отсутствии поции
>
> Хорошая очепятка...  :о)


Гы :))
Вот ведь бывает :)


 
Nikolay M. ©   (2006-02-10 16:38) [8]

Все, Олег, ты теперь начинающий :))))
Можешь выкинуть свои 5 (или сколько) лет опыта с МС СКЛ :)


 
Ega23 ©   (2006-02-10 17:35) [9]


> Все, Олег, ты теперь начинающий :))))
> Можешь выкинуть свои 5 (или сколько) лет опыта с МС СКЛ
> :)


Да ты знаешь, я не в претензии. Начинающий - так начинающий.
В конечном итоге важен результат, не так ли?
:-)))


 
Nikolay M. ©   (2006-02-10 17:43) [10]

Ага, все-таки из начинающих в треп положили :)


> В конечном итоге важен результат, не так ли?

Ессесно :)



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.03.05;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.01 c
2-1140342723
Ольга
2006-02-19 12:52
2006.03.05
Сортировка набора данных, возвращаемого хранимой процедурой


10-1115098982
zafar
2005-05-03 09:43
2006.03.05
Помогите с OLE !!!!


9-1126007655
AlexeyM
2005-09-06 15:54
2006.03.05
эмуляция нажатия клавиши клавиатуры


6-1132395921
[ S.F.I.N.X ]
2005-11-19 13:25
2006.03.05
PID процесса


2-1140251499
Vandet
2006-02-18 11:31
2006.03.05
Здравствуйте помогите пожалуйста





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский