ClassicASP DB값 NULL체크 하기
페이지 정보
본문
DB의 값이 NULL인지 체크 해야 하는 경우가 발생합니다.
그럴때 사용할수 있는 방법으로는
1. DB에서 해결하는 방법
2. 코드단에서 해결하는 방법
두가지 방법이 존재 합니다.
[ 방법1 ] DB로 해결보는 방법은
select isnull(컬럼,0) from 테이블 where....
컬럼의 값이 NULL일때의 값을 0으로 셋팅하도록 DB에서 미리 셋팅 해주는 방법이 있습니다.
하지만 DB 에서 값을 가지고 올때 미리 수정해서 가지고 오지 않아야 하는 경우가 있습니다.
<%
SQL = "select sum(CAST(컬럼 AS float)) as 컬럼2 from 테이블 where applicant_id ='1' "
set rs = dbconn.Execute(SQL)
if rs.EOF or rs.BOF then
response.write "값없음"
else
response.write rs("컬럼2")
end if
%>
applicant_id = 1 의 값이 null 일경우
"값없음"을 반환하지 않음 ... 오류
아래와 같이 isNull 선언해서 0 값을 반환하도록 로직을 만들어야 문제해결
<%
SQL = "select isNull(sum(CAST(컬럼 AS float)),0) as 컬럼2 from 테이블 where applicant_id ='1' "
set rs = dbconn.Execute(SQL)
if rs.EOF or rs.BOF then
response.write rs("컬럼2") ' 0
else
response.write rs("컬럼2") ' 값
end if
%>
applicant_id = 1 의 값이 null 일경우
"0"을 반환
[ 방법2 ] 코드단에서 해결하는 방법
ClassicASP는 ASP.NET 에서와 달리 값을 ToSTring() 형식으로 NULL 문자를 "" 로가지고 오지 않습니다.
그러므로 ASP 에서는 해당컬럼을 String과 비교가 불가능합니다.
그래서 아래와같이 NULL 해당하는 문자에 ""를 더해서 "" 와 비교 할수있도록 합니다.
<%
'컬럼 NULL 체크
SQL = " select sum(CAST(컬럼 AS float)) as 컬럼2 from 테이블 where applicant_id ='1' "
set rs = dbconn.Execute(SQL)
if rs("컬럼2") & "" = "" then
response.write "NULL 입니다."
else
response.write rs("컬럼2") ' 값
end if
'레코드 NULL체크
SQL = "select * from 테이블 where applicant_id ='1' "
set rs = dbconn.Execute(SQL)
if rs.BOF and rs.EOF then
response.write "NULL 입니다."
else
response.write rs("컬럼") ' 값
end if
%>
참고자료
http://blog.daum.net/computercode/7189341
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=56&MAEULNo=22&no=68996&ref=68992
그럴때 사용할수 있는 방법으로는
1. DB에서 해결하는 방법
2. 코드단에서 해결하는 방법
두가지 방법이 존재 합니다.
[ 방법1 ] DB로 해결보는 방법은
select isnull(컬럼,0) from 테이블 where....
컬럼의 값이 NULL일때의 값을 0으로 셋팅하도록 DB에서 미리 셋팅 해주는 방법이 있습니다.
하지만 DB 에서 값을 가지고 올때 미리 수정해서 가지고 오지 않아야 하는 경우가 있습니다.
<%
SQL = "select sum(CAST(컬럼 AS float)) as 컬럼2 from 테이블 where applicant_id ='1' "
set rs = dbconn.Execute(SQL)
if rs.EOF or rs.BOF then
response.write "값없음"
else
response.write rs("컬럼2")
end if
%>
applicant_id = 1 의 값이 null 일경우
"값없음"을 반환하지 않음 ... 오류
아래와 같이 isNull 선언해서 0 값을 반환하도록 로직을 만들어야 문제해결
<%
SQL = "select isNull(sum(CAST(컬럼 AS float)),0) as 컬럼2 from 테이블 where applicant_id ='1' "
set rs = dbconn.Execute(SQL)
if rs.EOF or rs.BOF then
response.write rs("컬럼2") ' 0
else
response.write rs("컬럼2") ' 값
end if
%>
applicant_id = 1 의 값이 null 일경우
"0"을 반환
[ 방법2 ] 코드단에서 해결하는 방법
ClassicASP는 ASP.NET 에서와 달리 값을 ToSTring() 형식으로 NULL 문자를 "" 로가지고 오지 않습니다.
그러므로 ASP 에서는 해당컬럼을 String과 비교가 불가능합니다.
그래서 아래와같이 NULL 해당하는 문자에 ""를 더해서 "" 와 비교 할수있도록 합니다.
<%
'컬럼 NULL 체크
SQL = " select sum(CAST(컬럼 AS float)) as 컬럼2 from 테이블 where applicant_id ='1' "
set rs = dbconn.Execute(SQL)
if rs("컬럼2") & "" = "" then
response.write "NULL 입니다."
else
response.write rs("컬럼2") ' 값
end if
'레코드 NULL체크
SQL = "select * from 테이블 where applicant_id ='1' "
set rs = dbconn.Execute(SQL)
if rs.BOF and rs.EOF then
response.write "NULL 입니다."
else
response.write rs("컬럼") ' 값
end if
%>
참고자료
http://blog.daum.net/computercode/7189341
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=56&MAEULNo=22&no=68996&ref=68992
댓글목록
등록된 댓글이 없습니다.