asp string null

Original Post : http://www.devx.com/tips/Tip/13394


Beware of Null Values in ASP Database Programs

The Active Server Pages HTMLEncode function is great for handling strings that come from a database, especially if the string includes foreign characters. However, you can get into trouble if the string field in the database is empty; that is, it contains a Null. When it hits a Null, HTMLEncode throws a “Type Mismatch” error. Make sure you check for Nulls whenever you are using HTML-encoding. Here’s sample routine:
 
<HTML>
<HEAD>
</HEAD>
<BODY>
<%
Function HTMLEncode(instring)
If Not IsNull(instring) then
HTMLEncode=Server.HTMLEncode(instring)
else
HTMLEncode=””
end if
End function
%>

<%
dbdatastring=Null
Response.Write HTMLEncode(dbdatastring)
dbdatastring=”J’ai mal à la tête.”
Response.Write HTMLEncode(dbdatastring)
%<
</BODY>
</HTML>







Ken Cox

우편번호 검색하기 (ASP, MS-Access)

출처(Original Post) : 기억이 안남

기능 : 우편번호 찾기
용도 : 회원 가입 페이지 등에 사용 가능.

zip 파일 하나만 있는데, 그 zip 파일 안에 저작권이 자유롭게 수정하거나 배포 가능하다고 적혀 있습니다.
제가 직접 사용하고 있는 소스인데, 여러가지 우편 번호 찾기 소스가 있으나 그 중에서 제일 나은 것 같습니다.
수정하기도 쉽구요. 물론 저는 sql용으로 변환해서 쓰고 있긴 합니다만…

1368488895.zip

difference CDO and CDONTS

CDONTS should not available on Microsoft Windows 2003,

If you are using Windows 2003 with IIS 6, use CDO instead of CDONTS.


Dim objMail
Set objMail = Server.CreateObject("CDONTS.NewMail")

objMail.From = "stephen_w54@hotmail.com"
objMail.Subject = "Updates"
objMail.To = "somebody@somewhere.com"
objMail.Body = "This is an email message"
objMail.Send

Response.write("Mail was Sent")
set objMail = nothing

Change to

Server.CreateObject( “CDO.Message” )

Connected Select List

출처(Original Post) : Mr.Black (coverboy@1234.co.kr)

2단 연결에 대해서만 기술하자면,

그림을 먼저 보여주고 시작해야 이해가 쉬울 듯 싶기 때문에, 예제를 든다.

여기는 예전에 한화종합화학 홈페이지 구축해 줄때의 화면이다.

흔히 2단 구조가 필요할 만한 곳으로, 어떤 카테고리를 타고 나와야 하는 것들이 있고,
특히나 위의 예제와 같이 주소 부분이 자주 쓰이는 부분 중의 하나이다.

<!–#include virtual=”root/myDSN.asp”–>
<!– Original:  Mikayel Muradyan (mikam@freenet.am) –>
<!– This script and many more are available free online at –>
<!– The JavaScript Source!! http://javascript.internet.com –>

<SCRIPT LANGUAGE=”JavaScript” TYPE=”text/javascript”>
// Initialize class for Type and Style
function Type(id, type){
this.id = id;
this.type = type;
}

function Style(id, id_type, style){
this.id = id;
this.id_type = id_type;
this.style = style;
}
</script>

<%
mySQL=”SELECT * from sk_gugun order by gugun ASC”
‘ 2번째 나올 테이블, 즉, Child Table 의 리스트를 불러온다.

  set conntemp=server.createobject(“adodb.connection”)
  conntemp.open myDSN
  set rstemp=Server.CreateObject(“adodb.recordset”)
  rstemp.open mySQL, conntemp, 1
  Rcount=rstemp.RecordCount

mySQL2=”select * from sk_sido order by sido ASC”
‘ 1번째 나올 테이블, 즉, Parent Table 의 리스트를 불러온다.

set rstemp2=Server.CreateObject(“adodb.recordset”)
rstemp2.open mySQL2, conntemp, 1
Rcount2=rstemp2.RecordCount
‘ response.write “Rcount2=” & Rcount2 & “<br>”

response.write “<script language=javascript>” & vbCrLf
response.write “TypeArray = new Array(” & vbCrLf
i=1
do until rstemp2.eof or Rcount2 < i
‘ response.write “i=” & i & vbCrLf
if Rcount2 = i  then
response.write “new Type(” & rstemp2(“UniqueID”) & “,””” & rstemp2(“sido”) & “””)” & vbCrLf
else
response.write “new Type(” & rstemp2(“UniqueID”) & “,””” & rstemp2(“sido”) & “””),” & vbCrLf
end if
i=i+1
rstemp2.movenext
loop
‘   new Type(1, “Apparel”),
‘   new Type(2, “Shoes”),
‘   new Type(5, “Accessories”)

response.write “);” & vbCrLf
response.write “</script>”

response.write “<script language=javascript>” & vbCrLf
response.write “StyleArray = new Array(” & vbCrLf

i=1
do until rstemp.eof or Rcount < i
‘ response.write “i=” & i & vbCrLf
if Rcount = i  then
response.write “new Style(” & rstemp(“UniqueID”) & “,” & rstemp(“sido_UniqueID”) & “,””” & rstemp(“gugun”) & “””)” & vbCrLf
else
response.write “new Style(” & rstemp(“UniqueID”) & “,” & rstemp(“sido_UniqueID”) & “,””” & rstemp(“gugun”) & “””),” & vbCrLf
end if
i=i+1
rstemp.movenext
loop

response.write “);” & vbCrLf
response.write “</script>”

%>
<script language=”Javascript”>
function init(sel_type, sel_style){
document.product.id_type.options[0] = new Option(“시/도”);
document.product.id_style.options[0] = new Option(“시/구/군”);

for(i = 1; i <= TypeArray.length; i++){
  document.product.id_type.options[i] = new Option(TypeArray[i-1].type, TypeArray[i-1].id);
  if(TypeArray[i-1].id == sel_type)
   document.product.id_type.options[i].selected = true;
}
OnChange(sel_style);
}

function OnChange(sel_style){
sel_type_index = document.product.id_type.selectedIndex;
sel_type_value = parseInt(document.product.id_type[sel_type_index].value);

for(i = document.product.id_style.length – 1; i > 0; i–)
  document.product.id_style.options[i] = null;
j=1;

for(i = 1; i <= StyleArray.length; i++){
  if(StyleArray[i-1].id_type == sel_type_value){
   document.product.id_style.options[j] = new Option(StyleArray[i-1].style, StyleArray[i-1].id);
   if(StyleArray[i-1].id == sel_style) document.product.id_style.options[j].selected = true;
   j++;
  }
}
}
</SCRIPT>

<script language=”Javascript”>
<!–
function submitSigong()
{
document.product.submit();
}
–>
</script>

<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr>
<td>
<form name=”product” action=”../board_work/search_result_frommain.asp”>
  <select name=”id_type” size=”1″ style=”width: 70px;font-size: 12px; color: #676767;” onChange=”OnChange()”>
  </select>
  <select name=”id_style” size=”1″ style=”width: 90px;font-size: 12px; color: #676767;”>
  </select>
  <input type=”button” value=”검색” onClick=”javascript:submitSigong();”>
</Form>
</td>

<SCRIPT LANGUAGE=”JavaScript” TYPE=”text/javascript”>
<!–
// init(5, 31); // Initialize comboboxes by selected sel_type and sel_style
init();         // Default initialize comboboxes for Type and Style
//–>
</SCRIPT>

——————————————————–

MS-SQL Table 구조


Create table [dbo].[sk_gugun]
(
[UniqueID] Integer Identity(1,1) NOT NULL,
[gugun] Nvarchar(13) COLLATE Korean_Wansung_CI_AS NULL,
[sido_UniqueID] Integer NULL,
[sido] Nvarchar(4) COLLATE Korean_Wansung_CI_AS NULL,
Constraint [PK_sk_gugun] Primary Key ([UniqueID])
)
go

Create table [dbo].[sk_sido]
(
[UniqueID] Integer Identity(1,1) NOT NULL,
[sido] Nvarchar(4) COLLATE Korean_Wansung_CI_AS NULL,
Constraint [PK_sk_sido] Primary Key ([UniqueID])
)
go

————————————————–

시도, 구군에 해당하는 데이터는 오른쪽 링크에 첨부한 시도구군.sql을 다운 받아서
테이블 생성 후 쿼리 분석기에서 한번 돌려주면, 쭈욱 들어간다.1396968287.sql