Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.05;
Скачать: CL | DM;

Вниз

Глюк 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.042 c
1-1138560810
taz
2006-01-29 21:53
2006.03.05
Меняем вид компонентов


15-1139547961
QwertyKz
2006-02-10 08:06
2006.03.05
Коврик для мышки весом 1 кг


2-1139663837
Glex
2006-02-11 16:17
2006.03.05
Как поймать мышиное сообщение и передать его контролу?


3-1137025928
Kromwerk
2006-01-12 03:32
2006.03.05
Преобразование времени


15-1139787417
Евгений_М
2006-02-13 02:36
2006.03.05
Поиск в файлах и замена в них текста