회원테이블 및 SP

mssql에 StudyDB라는 DB를 만들고
Tbl_Member 이라는 테이블을 만들어보자~


CREATE TABLE [dbo].[Tbl_Member](
	[MemberID] [nvarchar](20) NOT NULL,
	[MemberPW] [nvarchar](20) NULL,
	[MemberName] [nvarchar](20) NULL,
	[MemberEmail] [nvarchar](100) NULL,
	[DelYN] [char](1) NULL,
	[InsertDate] [date] NULL,
 CONSTRAINT [PK__Tbl_Member_Key1] PRIMARY KEY CLUSTERED 
(
	[MemberID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

-- sp만들기
1. 회원유무 체크 sp
CREATE PROCEDURE dbo.USP_MemberJoinDupCheck
(
		@name	nvarchar(20)
,		@email	nvarchar(20)
)
AS
BEGIN
		DECLARE @RtnValue INT, @CheckName nvarchar(20)
		
		-- 해당 메일로 이름을 변수에 담는다
		SELECT	@CheckName = MemberName
		FROM	dbo.Tbl_Member
		WHERE	MemberEmail = @email
						
		IF ( ISNULL(@CheckName, '') = '' )
		BEGIN
				-- 존재하지 않으면.. 1
				SET	@RtnValue = 1
		END
		ELSE
		BEGIN				
				IF ( @name = @CheckName )
				BEGIN
						-- 존재하고 이름이 같으면.. 2
						SET @RtnValue = 2
				END
				ELSE
				BEGIN
						-- 존재하고 이름이 다르면.. 2
						SET	@RtnValue = 3
				END
		END
		
		RETURN @RtnValue
END

2. 회원정보 저장/수정 SP
CREATE PROCEDURE dbo.Tbl_MemberSave
(
		@MemberID		nvarchar(20)
,		@MemberPW		nvarchar(20)
,		@MemberName		nvarchar(20)
,		@MemberEmail	nvarchar(100)
,		@DelYN			char(1)
)
AS
BEGIN

IF NOT EXISTS	(
				SELECT	*
				FROM	Tbl_Member
				WHERE	MemberID = @MemberID
				)
BEGIN
		--아이디가 존재하지 않으면 INSERT
		INSERT	INTO dbo.Tbl_Member
		(
				MemberID
		,		MemberPW
		,		MemberName
		,		MemberEmail
		,		DelYN
		,		InsertDate)
		VALUES
		(
				@MemberID
		,		@MemberPW
		,		@MemberName
		,		@MemberEmail
		,		@DelYN
		,		GETDATE()
		)
END
ELSE
BEGIN
		-- 아이디가 존재하면 UPDATE
		UPDATE	dbo.Tbl_Member
		SET		MemberID	= @MemberID
		,		MemberPW	= ( CASE WHEN @MemberPW = '' THEN MemberPW ELSE @MemberPW END )
		,		MemberName	= ( CASE WHEN @MemberName = '' THEN MemberName ELSE @MemberName END )
		,		MemberEmail	= ( CASE WHEN @MemberEmail = '' THEN MemberEmail ELSE @MemberEmail END )
		WHERE	MemberID	= @MemberID
END

END

3. 회원정보 삭제플래그 변경
CREATE PROCEDURE dbo.Tbl_MemberFlagDelete
(
		@MemberID		nvarchar(20)
,		@DelYN			char(1)
)
AS
BEGIN

UPDATE	dbo.Tbl_Member
SET		DelYN		= @DelYN
WHERE	MemberID	= @MemberID

END

4. 회원정보 삭제
CREATE PROCEDURE dbo.Tbl_MemberRealDelete
(
		@MemberID		nvarchar(20)
)
AS
BEGIN

DELETE	dbo.Tbl_Member
WHERE	MemberID	= @MemberID

END


모.. 이 정도면.. 회원가입폼을 만들 수 있겠쥐.. =_=;;
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by jincaesar

2011/02/15 18:05 2011/02/15 18:05
Response
No Trackback , No Comment
RSS :
http://jincaesar.maru.net/tc/rss/response/54

ASP에서 from 태그 사용법..

ASP.NET에서는 form을 하나만 쓰기 때문에 VS에서 ASP.NET 페이지를 만들면 자동으로 form테그가 들어간다.
그러나 ASP에서는 여러 폼을 사용하는 경우가 있기 때문에 주의를 기울여야한다.



◆ 폼태그 이해 form name action enctype method target... . name="여러개의 폼을 사용시 구분을 해주기 위한 이름" . action="CGI프로그램이 있는 URL을 지정" . enctype="인코딩할 폼 데이터의 MINEtype을 지정" . method="get, post" : 폼데이터를 서버의 CGI프로그램에 전달되는 방식을 지정 . target="결과물을 보여줄 창의 이름을 지정" :_blank(새로운창) _self(현재의 창) _parent(상위의 창) _top(전체 화면으로)
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by jincaesar

2011/02/14 14:17 2011/02/14 14:17
Response
No Trackback , No Comment
RSS :
http://jincaesar.maru.net/tc/rss/response/53

ASP - ADO 개체

대표적인 ADO 개체 3가지
Connection: DB연결할 때 사용
Command: DB연결된 후 SQL문을 실행
RecordSet: SQL문의 결과값을 받는다.(DataSet과 비슷)

형식 - Connection
-- 개체생성
Set db = Server.CreateObject("ADODB.Connection")
-- 메서드
-- db연결
db.Open "Provider=SQLOLEDB.1;Persist Security Info=True;User ID=Test;Password=Test;Initial Catalog=StudyDB;Data Source=localhost"
-- db연결종료
db.Close
Set db.Nothing

형식 - Command 개체
-- 개체생성
Set cmd = Server.CreateObject("ADODB.Command")
-- 메서드
CreateParameter: Parameter 개체 생성
Execute: SQL문 실행
-- 어트리뷰트
ActiveConnection: DB연결 시 사용되는 개체
CommandText: 실행문을 저장하는 개체
CommandType: 실행문의 Type을 지정
Prepare: 실행문 실행전 미리 컴파일할 것인지 지정
CommandTimeout: 실행시간 지정(기본 30초)
-- Command Type
adCmdUnknown ( 0 )  : 자동으로 Type을 지정
adCmdText ( 1 ) : SQL문 (TEXT)
adCmdTable( 2 ) : 테이블명 지정
adCmdStoredProc (4) : SP 지정

형식 - RecordSet 개체
--  개체생성
Set rs = Server.CreateObject("ADODB.RecordSet")
-- 메서드
MoveFirst: 첫번째 레코드로 이동
MoveLast: 마지막 레코드로 이동
MoveNext: 다음 레코드로 이동
MovePrevious: 이전 레코드로 이동
-- 어트리뷰트
AbsolutePage : 현재 페이지가 몇번째 페이지인지 알 수 있음.
AbsolutePosition : 현재 레코드가 몇번째 레코드인지 알 수 잇음.
BOF  : 현재 레코드가 첫번째 레코드보다 앞에 위치하면  true
EOF  : 현재 레코드가 마지막 레코드보다 뒤에 위치하면 true
PageCount : 총 페이지 수를 알 수 있다.
PageSize : 한 페이지로 설정할 레코드 수를 지정
RecordCount : 레코드의 총 수
-- CursorType
adOpenForwordOnly ( 0 ) : CursorType을 지정하지 않으면 기본값으로 설정되는 Type, 레코드의 이동이 전진만 가능. 레코드를 한번만 액세스할 때 주로 사용(단순한 기능.. 빠른 속도가 장점)
adOpenKeyset ( 1 ) : 레코드의 이동이 자유롭고 레코드가 열려 있는 동안 다른 사용자들이 레코드를 추가, 삭제, 수정하면 바로 적용된다.
adOpenDynamic ( 2) : adOpenKeyset 와 기능은 비슷하나 속도가 느리다는 단점이 있다.
adOpenStatic (3) : 레코드의 이동이 자유롭고, 레코드가 열려있는 동안 다른 사용자들이 레코드를 추가, 수정, 삭제할 때에 변경 사항을 바로 레코드에 적용하지 못한다.
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by jincaesar

2011/02/08 13:23 2011/02/08 13:23
Response
No Trackback , No Comment
RSS :
http://jincaesar.maru.net/tc/rss/response/51