저장 프로시저를 이용할 때 리턴되는 값은 크게 리턴(Return)과 셀랙트(Select)로 나눌 수 있습니다. 리턴은 int형만 가능하고 일반적으로 프로시저에 대한 응답(로그인 중이라면 로그인이 안 된 이유 같은 것들)용으로 많이 사용합니다. 셀랙트는 말 그대로 데이터(테이블)를 리턴하는 것이고요. 1. SQL 작성 리턴과 셀랙트를 구분 안 하는 경우도 있습니다만 구분해서 쓰면 처리하기도 편해지고 코드도 일관성 있어저서 좋습니다. --Return과 Select를 구분한 경우 Select 1 Return 2 --결과 --Select : 1 --Return : 2 --Return과 Select를 구분하지 않은 경우 Select 1 Return --결과 --Select : 1 --Return : null 일반..
이전 글에서 테이블 변수에 관해서 이야기했었습니다. 임시 테이블과 테이블 변수는 사용하는 방법 면에서는 별 차이가 없으나 성능상 차이가 있다고 합니다. 테이블 변수가 성능 면에서 더 유리하다고 하는데....직접 비교는 해보지 않아서 잘 모르겠습니다 ㅎㅎㅎ (참고 : [MSSQL] 저장프로시저에서 테이블(Table) 변수 사용하기 ) 1. 선언 선언 임시테이블이므로 크리에이트 테이블(Create Table)로 생성하면 됩니다. --리턴값을 받기위한 임시 테이블 --Create Table [생성할 테이블 이름] ( [컬럼명] [데이터형], ... , [컬럼명] [데이터형] ) Create Table #Result ( nIndex int , sName varchar(16) , sID varchar(16)) 2..
테이블 변수라는 것은 변수로 선언된 테이블을 말합니다. 셀랙트(Select)하여 받아온 데이터를 저장 프로시저(stored procedure)에서 처리할 때 사용합니다. 1. 선언 선언은 'table'로 하면 됩니다. Declare @Table table ( nIndex int , sName varchar(16) , sID varchar(16)) 2. 입력 입력은 인서트(Insert)를 이용하면 됩니다. Insert @Table Select * From tb_WebServiceTest Where intIndex = 45 이렇게 하면 셀랙트의 결과가 테이블 변수로 들어가게 되죠. 3. 사용 사용은 일반적인 테이블처럼 사용할 수 있습니다. 셀랙트뿐만 아니라 4대 천황도 사용할 수 있습니다. Select * ..
저장프로시저를 만들고 테스트해보면 메시지 "(1개 행이 영향을 받음)" 이런 메시지를 볼수 있습니다. 말그래로 저장프로시저 안에서 테이블에 영향을 주면(4대 천황같은 것을 사용하였을때) 출력됩니다. 만약 여러번 영향을 주면(select를 여러번 한다던가)하면 여러줄이 나옵니다. 그런데 이런 메시지가 서버에 부하를 준다는 군요 ㅡ.-; 그렇기 때문에 'Set Nocount on' 사용을 권장하고 있습니다. 저장프로시저의 시작점에 'Set Nocount on'를 적어 주시면 됩니다. (참고 : MSDN - SET NOCOUNT(Transact-SQL)) 예를 들면 아래와 같습니다. ALTER PROCEDURE [dbo].[TestSelect] As BEGIN Set Nocount on Select * Fro..
마이크로 소프트 오피스에 비지오(Visio)라는 프로그램이 포함되어 있습니다. (라이센스에 따라 없을수 있음.) 하지만 따로 설치 해야 하죠 ㅡ.-; 비지오는 강력한 다이어그램 작성툴로 마이크로 소프트 오피스계열과도 궁합이 잘맞는 편입니다. (이전버전들의 경우 좀 궁합이 안맞긴 했습니다만...지금은 괜찬은듯 하네요.) ERD라는 것은 개체-관계다이어그램(Entity-Relationship Diagram)을 말합니다. (참고 : 위키백과 - 개체-관계 모델 ) 이미 만들어진 데이터베이스의 ERD를 생성하는 툴은 몇가지가 있지만 비지오는 평상시에도 많이 사용하므로 비지오를 이용하여 생성하는 방법을 다루겠습니다. 여기서 사용된 비지오 버전은 'Miocrosoft Visio 2010' 입니다. 1. 템플릿 생성..
저번에 다른 글에서 숨겨진 컨트롤을 이용한 비하인드 코드를 호출하는 방법을 알려 드렸습니다. (참고 : [ASP.Net] 자바스크립트에서 비하인드 호출하기) 다른방법으로 스크립트 매니저를 이용한 방법이 있습니다. 1.디자인텍스트 박스 하나와 html버튼을 하나 추가 해줍니다. 그리고 form의 바로 아래에 '도구 상자 > Ajax 확장'에 있는 스크립트 매니저(Script Manager)를 추가 시켜 줍니다. 스크립트매니저의 'EnablePageMethods'속성을 True로 바꿔줍니다. 2.비하인드 코드비하인드 코드는 스태틱(static)으로 공개된 메소드만 사용할수 있습니다. [System.Web.Services.WebMethod] public static string GetDate(string sM..
ASP는 자주 하질 않다 보니 자꾸 쓸 때마다 찾는 게 번거로워서 요번 기회에 정리해둡니다. 1. 자바스크립트 삽입 'response.write'를 이용하여 자바스크립트를 삽입합니다.
asp.net에서는 아작스(ajax)와 관련된 모듈들이 있습니다. 이것들을 Ajax.net이라고 부릅니다. 이 모듈들중 가장 많이 사용되면서도 유용한 업데이트 패널을 간단하게 다뤄보겠습니다. 업데이트 패널은 Ajax의 주요기능인 부분 새로고침의 영역입니다. 1.프로젝트에 추가프로젝트는 ASP.Nat로 생성하시면 됩니다. 도구 모음 > AJAX 확장 에서 스크립매니저(ScriptManager)를 추가합니다. 업데이트패널(UpdatePanel) 2개를 추가하고 각각에 래이블과 버튼을 하나씩 추가 합니다. 여기서 조심해야 할것은 업데이트패널안에 컨트롤을 추가하려면 사이에 추가하셔야 합니다. 업데이트패널을 사용하기위해서는 스크립트매니저가 꼭 먼저 선언이되어 있어야 합니다. 스크립트매니저는 비하인드와 클라이언트를..
일반적인 프로그램에는 '진입점'이라는 것이 있습니다. (보통 메인(main)이라고 많이 부릅니다.) 프로그램이 실행되면 맨 처음 실행되는 것들을 말이죠. 그런데 생각해보면 웹응용프로그램(WebForm)은 어디가 진입점이지? '시작 페이지로 설정'은 무슨 의미인가? 오른쪽 클릭해서 지정하는 시작페이지는 단순히 주소줄에 해당 파일명을 자동으로 입력해주는 효과일 뿐 진입점은 아닙니다. 주소줄에 직접 다른 파일명을 넣으면 거기가 시작 페이지가 되니까요. 이것은 웹 환경의 특성상 각 페이지는 접속했을 때만 유지되기 때문에 그렇습니다. 진짜 시작 지점 그렇다면 웹 응용프로그램은 어디가 진입점이냐? 어렵게 생각할 거 없이 웹서버에 올라가는 시점입니다. 그럼 그 시점은 어디냐? 'Application_Start' 입니..
이정도 글을 읽으시는 분들이라면 잘 아시겠지만 asp.net나 jsp, php같은 것들은 서버에서 돌아가고 그결과를 HTML형태로 만들어 클라이언트에게 전달합니다. 자바스크립트는 클라이언트에서만 작동하는 스크립트입니다. 두가지의 실행영역이 다르기 때문에 보기에 따라선 이 두가지가 상호작용을 하는 것은 정상적인 구조라고 볼수 없죠. 하지만 실제로 프로젝트를 진행하면 이 두가지의 상호작용에 따라 효율성 차이가 엄청납니다. 그러니 생각보다 자바스크립트로 비하인드 함수를 호출하거나 그 반대의 경우가 많이 발생합니다. 어찌됬건 자바스크립트에서 비하인드코드를 호출하기위해 제가 사용하는 방법은 숨겨진 컨트롤을 호출하는 방법입니다. 말그대로 서버컨트롤을 하나 만들어서 자바스크립트로 해당 컨트롤을 클릭하는 방법입니다. ..