Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Храминая процедура T-SQL / 25 сообщений из 50, страница 1 из 2
05.04.2015, 17:21
    #38927444
100
100
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Храминая процедура T-SQL
Подскажите, как написать хранимую процедуру, которая бы проверяла наличие записи в БД?
Например, есть таблица dbo.TableUser, нужно понять есть ли в этой таблице определенное значение из столба Passwort
...
Рейтинг: 0 / 0
05.04.2015, 18:46
    #38927462
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Храминая процедура T-SQL
...
Рейтинг: 0 / 0
05.04.2015, 18:58
    #38927470
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Храминая процедура T-SQL
100нужно понять есть ли в этой таблице определенное значение из столба Passwort
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
CREATE TABLE dbo.TableUser (
  Login               VARCHAR(50),
  PasswordHash        VARCHAR(50)
)
GO

SET NOCOUNT ON

INSERT INTO TableUser VALUES ('Vasya', '3fde6bb0541387e4ebdadf7c2ff31123')
INSERT INTO TableUser VALUES ('Petya', '00a1f187721c63501356bf791e69382c')
INSERT INTO TableUser VALUES ('Masha', '8bd6a8b9a8a5573e5a625a28e106dab2')

SET NOCOUNT OFF
GO

CREATE PROCEDURE dbo.CheckUserWithSpecifiedPasswordExists (
  @p_sPasswordHash    VARCHAR(50)
)
AS
BEGIN
  IF EXISTS (SELECT 1 FROM TableUser WHERE PasswordHash = @p_sPasswordHash)
    RETURN 1
    
  RETURN 0
END
GO

DECLARE @nReturnValue INTEGER

EXEC @nReturnValue = CheckUserWithSpecifiedPasswordExists '3fde6bb0541387e4ebdadf7c2ff31123'
PRINT @nReturnValue -- 1 - есть

EXEC @nReturnValue = CheckUserWithSpecifiedPasswordExists 'ebdadf7c2ff311233fde6bb0541387e4'
PRINT @nReturnValue -- 0 - нет
GO

DROP PROCEDURE dbo.CheckUserWithSpecifiedPasswordExists
DROP TABLE dbo.TableUser
GO
...
Рейтинг: 0 / 0
05.04.2015, 19:12
    #38927482
100
100
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Храминая процедура T-SQL
skyANA100нужно понять есть ли в этой таблице определенное значение из столба Passwort
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
CREATE TABLE dbo.TableUser (
  Login               VARCHAR(50),
  PasswordHash        VARCHAR(50)
)
GO

SET NOCOUNT ON

INSERT INTO TableUser VALUES ('Vasya', '3fde6bb0541387e4ebdadf7c2ff31123')
INSERT INTO TableUser VALUES ('Petya', '00a1f187721c63501356bf791e69382c')
INSERT INTO TableUser VALUES ('Masha', '8bd6a8b9a8a5573e5a625a28e106dab2')

SET NOCOUNT OFF
GO

CREATE PROCEDURE dbo.CheckUserWithSpecifiedPasswordExists (
  @p_sPasswordHash    VARCHAR(50)
)
AS
BEGIN
  IF EXISTS (SELECT 1 FROM TableUser WHERE PasswordHash = @p_sPasswordHash)
    RETURN 1
    
  RETURN 0
END
GO

DECLARE @nReturnValue INTEGER

EXEC @nReturnValue = CheckUserWithSpecifiedPasswordExists '3fde6bb0541387e4ebdadf7c2ff31123'
PRINT @nReturnValue -- 1 - есть

EXEC @nReturnValue = CheckUserWithSpecifiedPasswordExists 'ebdadf7c2ff311233fde6bb0541387e4'
PRINT @nReturnValue -- 0 - нет
GO

DROP PROCEDURE dbo.CheckUserWithSpecifiedPasswordExists
DROP TABLE dbo.TableUser
GO



Спасибо, не понял что такое идет после
DECLARE @nReturnValue INTEGER?
...
Рейтинг: 0 / 0
05.04.2015, 19:27
    #38927494
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Храминая процедура T-SQL
100, пример идёт.

Оставим только текст хранимой процедуры:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE PROCEDURE dbo.CheckUserWithSpecifiedPasswordExists (
  @p_sPasswordHash    VARCHAR(50)
)
AS
BEGIN
  IF EXISTS (SELECT 1 FROM TableUser WHERE PasswordHash = @p_sPasswordHash)
    RETURN 1
    
  RETURN 0
END
GO
...
Рейтинг: 0 / 0
05.04.2015, 19:28
    #38927496
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Храминая процедура T-SQL
skyANA100, пример идёт.Пример вызва нашей процедуры на T-SQL.
...
Рейтинг: 0 / 0
05.04.2015, 19:46
    #38927504
100
100
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Храминая процедура T-SQL
skyANA,

Написал следующий вызывающий код

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
 SqlConnection conn = null;
            SqlDataReader rdr = null;
            

            conn = new SqlConnection("Data Source=(LocalDB)\\v11.0;AttachDbFilename=C:\\Users\\trutn_000\\Documents\\DbProWizardMain.mdf;User ID=User;Password=100Million;Connect Timeout=30");
            conn.Open();

            // 1.  create a command object identifying the stored procedure
            SqlCommand cmd = new SqlCommand("CheckUserEmail", conn);

            // 2. set the command object so it knows to execute a stored procedure
            cmd.CommandType = CommandType.StoredProcedure;

            // 3. add parameter to command, which will be passed to the stored procedure
            cmd.Parameters.Add(new SqlParameter("@Email", 1));

            // execute the command
            rdr = cmd.ExecuteReader();

                 conn.Close();




Но почему возращается нуль, хотя 1-ка в базе есть,

код ХП

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE PROCEDURE dbo.CheckUserEmail (
  @Email    VARCHAR(50)
)
AS
BEGIN
  IF EXISTS (SELECT 1 FROM TableUser WHERE Email = @Email)
    RETURN 1
    
  RETURN 0
END
...
Рейтинг: 0 / 0
05.04.2015, 19:48
    #38927505
100
100
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Храминая процедура T-SQL
сама база

Код: sql
1.
2.
3.
4.
5.
6.
CREATE TABLE [dbo].[TableUser] (
    [IdUser]    INT           NULL,
    [Email]     NVARCHAR (50) NULL,
    [Passwort]  NVARCHAR (50) NULL,
    [IdSession] NVARCHAR (50) NULL
);
...
Рейтинг: 0 / 0
05.04.2015, 21:09
    #38927538
_=ДОБРЫНЯ=_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Храминая процедура T-SQL
Привет
У меня вопросы по этой же теме. Мне нужно передавать в хранимку разное кол-во параметров для фильтра. К примеру: есть фильтры по дате, по менеджеру, по офису, по сумме и т.д. Пользователь может активировать и задавать любое кол-во фильтров по своему желанию.
Собственно вопросы:
1) Как правильно передавать в хранимку список параметров для фильтра?
2) Как правильно в хранимке прописать прием этих параметров и делать проверку на валидность типов данных?
...
Рейтинг: 0 / 0
05.04.2015, 21:17
    #38927544
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Храминая процедура T-SQL
_=ДОБРЫНЯ=_Привет
У меня вопросы по этой же теме. Мне нужно передавать в хранимку разное кол-во параметров для фильтра. К примеру: есть фильтры по дате, по менеджеру, по офису, по сумме и т.д. Пользователь может активировать и задавать любое кол-во фильтров по своему желанию.
Собственно вопросы:
1) Как правильно передавать в хранимку список параметров для фильтра?
2) Как правильно в хранимке прописать прием этих параметров и делать проверку на валидность типов данных?

Отвратительный подход. Если сама задача поставлена через задний проход, красивых решений не ждите.
...
Рейтинг: 0 / 0
05.04.2015, 22:39
    #38927581
_=ДОБРЫНЯ=_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Храминая процедура T-SQL
hVostt_=ДОБРЫНЯ=_Привет
У меня вопросы по этой же теме. Мне нужно передавать в хранимку разное кол-во параметров для фильтра. К примеру: есть фильтры по дате, по менеджеру, по офису, по сумме и т.д. Пользователь может активировать и задавать любое кол-во фильтров по своему желанию.
Собственно вопросы:
1) Как правильно передавать в хранимку список параметров для фильтра?
2) Как правильно в хранимке прописать прием этих параметров и делать проверку на валидность типов данных?

Отвратительный подход. Если сама задача поставлена через задний проход, красивых решений не ждите.

Если отвратительный подход - то подскажите как быть тогда в таких ситуациях:
Когда через n-е кол-во времени просят добавить один-два фильтра. А потом какой-то убрать, а потом добавить еще 5-ть и т.д. т.д.?
Как грамотно реализовывать такое в ASP?
...
Рейтинг: 0 / 0
05.04.2015, 22:48
    #38927584
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Храминая процедура T-SQL
_=ДОБРЫНЯ=_Если отвратительный подход - то подскажите как быть тогда в таких ситуациях:
Когда через n-е кол-во времени просят добавить один-два фильтра. А потом какой-то убрать, а потом добавить еще 5-ть и т.д. т.д.?
Как грамотно реализовывать такое в ASP?

В соседней ветке об этом только говорил: 17456420
...
Рейтинг: 0 / 0
05.04.2015, 23:28
    #38927593
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Храминая процедура T-SQL
100, следует использовать ExecuteNonQuery + ParameterDirection.ReturnValue.

Погуглите, мне с планшета не удобно код писать :)
...
Рейтинг: 0 / 0
05.04.2015, 23:29
    #38927594
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Храминая процедура T-SQL
_=ДОБРЫНЯ=_, передавайте фильтр в виде XML.
...
Рейтинг: 0 / 0
06.04.2015, 11:53
    #38927840
100
100
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Храминая процедура T-SQL
skyANA,

Подскажите, а почему мой код не работает? Что здесь ни так?
...
Рейтинг: 0 / 0
06.04.2015, 11:57
    #38927850
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Храминая процедура T-SQL
100, выше писал.
...
Рейтинг: 0 / 0
06.04.2015, 12:12
    #38927874
100
100
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Храминая процедура T-SQL
skyANA100, следует использовать ExecuteNonQuery + ParameterDirection.ReturnValue.

Погуглите, мне с планшета не удобно код писать :)

С этим ExecuteNonQuery разобрался, плохо знаю инглиш, поэтому не смог понять что такое ParameterDirection.ReturnValue
...
Рейтинг: 0 / 0
06.04.2015, 12:21
    #38927888
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Храминая процедура T-SQL
100ParameterDirection.ReturnValue
НаправлениеПараметров.ВозвращаемоеОбратноЗначение
...
Рейтинг: 0 / 0
06.04.2015, 13:08
    #38927933
100
100
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Храминая процедура T-SQL
Axeleron,

не понимаю) можно на примере?
...
Рейтинг: 0 / 0
06.04.2015, 13:08
    #38927934
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Храминая процедура T-SQL
100skyANA100, следует использовать ExecuteNonQuery + ParameterDirection.ReturnValue.

Погуглите, мне с планшета не удобно код писать :)

С этим ExecuteNonQuery разобрался, плохо знаю инглиш, поэтому не смог понять что такое ParameterDirection.ReturnValue
ParameterDirection - перечисление

A simple example on how to get Return and Out parameter values using Ado.Net

Если с инглиш плохо, то возьмите книжку на русском по ADO.NET.
...
Рейтинг: 0 / 0
06.04.2015, 13:13
    #38927943
100
100
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Храминая процедура T-SQL
skyANA,

все равно не понимаю как это в связке все работает, можете концептуально расписать?
...
Рейтинг: 0 / 0
06.04.2015, 13:21
    #38927962
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Храминая процедура T-SQL
100, чтобы получить возвращаемое процедурой значение,
необходимо к SqlCommand добавить параметр, у которого в качестве Direction указать System.Data.ParameterDirection.ReturnValue.

После вызова ExcuteNonQuery, прочитать Value у данного параметра.
...
Рейтинг: 0 / 0
06.04.2015, 13:29
    #38927973
100
100
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Храминая процедура T-SQL
skyANA,

что такое Direction ?
...
Рейтинг: 0 / 0
06.04.2015, 13:34
    #38927982
Березовский
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Храминая процедура T-SQL
авторчто такое Direction ?

Направление параметра. Может быть входной параметр и может быть выходной, возвращающий какое то значение из ХП
...
Рейтинг: 0 / 0
06.04.2015, 14:01
    #38928024
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Храминая процедура T-SQL
100skyANA,

что такое Direction ?Свойство параметра. SqlParameter.Direction - свойство

Вы код по ссылке-то посмотрите. Ладно инглиш, Вам что ещё и код не понятен?
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Храминая процедура T-SQL / 25 сообщений из 50, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]