0

現在、私はユーザーログインの検証に取り組んでいるので、手順を使用してユーザー名とパスワードをサインアップフォームテーブルと比較し、レコードセットの値が >0 (成功) または <0 (失敗) であることを確認しますが、手順の概念がよくわかりません。自分のレベルで最善を尽くしましたが、これを修正できません。助けてください。前もって感謝します

ここで私はこれを試しました:

Create table signupform (username varchar(10), password varchar(10)); 
Insert into signupform values ('sampath','s96000');
Insert into signupform values ('yuvaraj','y96297');
select * from signupform;

// CREATE PROCEDURE for compare username and password
create procedure testing (@username varchar(10), @password varchar(10))
AS
BEGIN
select * from signupform where username = @username and password = @password
End;
4

4 に答える 4

5

関数を作成することをお勧めします:

create function testing(@username varchar(10), @password varchar(10))
RETURNS bit
BEGIN
   if EXISTS(select * from signupform where username = @username and password = @password)
   then
      return 1;
   else
      return 0; 
   end if;
end;
于 2012-06-29T15:13:55.217 に答える
0

ユーザーテーブルにlogin/pwdが存在するかどうかを確認してください

if EXISTS(SELECT TOP 1 * FROM signupform WHERE username = @username AND password = @password)
begin

set @res = 1;
end

    select @res as valid
    return
于 2012-06-29T15:13:37.163 に答える
0

関係なく値を返すようにすることができます。これにより、行のカウントについて心配する必要がなくなります。

IF EXISTS(  
   SELECT *  
   FROM signupform  
   WHERE username = @username AND password = @password)  
BEGIN  
   SELECT 'Y'  
END  
ELSE  
BEGIN  
   SELECT 'N'  
END

または、カウントを行いますが、おそらく効率は低下します

SELECT COUNT(*)  
FROM signupform  
WHERE username = @username AND password = @password
于 2012-06-29T15:14:07.793 に答える
-1

SELECT次のステートメントを試してください。

SELECT UPPER(LEFT(@TypeName, 3)) into @TypeCode;
SELECT UPPER(LEFT(BranchName, 3)) into @Branch from tbl_erp_branches where BranchId=BranchIds;
-- SELECT UPPER(LEFT(AccountHeadName, 3)) into @Head from fin_erp_account_head where AccountHeadId=AccountHeadIds;
SELECT UPPER(LEFT(AccountHeadName, 3)) into @Head from fin_erp_account_head where AccountHeadId=AccountHeadIds;
SELECT UPPER(LEFT(CurrencyCode, 3)) into @Currency from tbl_erp_currency where CurrencyId=CurrencyIds;
于 2015-07-22T10:45:20.603 に答える