database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 3225 게시물 읽기
No. 3225
sql 입력 부분 이렇게 나네요
작성자
김훈(kvulc)
작성일
2007-01-02 15:53
조회수
6,622

누가 asp관련 에러나는것 물어보는데...잘 안되네요..어디부분이 잘못되었는지 살펴주시면 감사하겠습니다.

http://daejungfood.co.kr/reserv/reserv.asp

예약 신청하는 부분입니다.
소스는 아래와 같습니다.
-----------------------------------------------------------
  <table width="613" height="739" border="0" cellpadding="0" cellspacing="0">
 <script language="javascript">
  function onlyNumber(){
   if(event.keyCode<48||event.keyCode>57)
   event.returnValue=false;
  }

 function check(){
  if(document.dj_reserve.dj_date1.value == "" || document.dj_reserve.dj_date2.value == ""
|| document.dj_reserve.dj_date3.value == ""){
   alert("행사일자를 작성해 주세요")
   document.dj_reserve.dj_date1.focus();
   return false;
  }else if(document.dj_reserve.dj_date1.value.length<2 ||
document.dj_reserve.dj_date2.value.length<1 || document.dj_reserve.dj_date3.value.length<1){
   alert("행사일자를 정확히 작성해 주세요")
   document.dj_reserve.dj_date1.focus()
   return false
  
  }

  if(document.dj_reserve.dj_pe.value==""){
   alert("예상인원을 작성해 주세요")
   document.dj_reserve.dj_pe.focus()
   return false
  }

  if(document.dj_reserve.dj_name.value.length<2){
   alert("작성자 이름을 작성해 주세요")
   document.dj_reserve.dj_name.focus()
   return false;
  }
  if(document.dj_reserve.dj_phone1.value=="" ||
document.dj_reserve.dj_phone2.value=="" || document.dj_reserve.dj_phone3.value==""){
    alert("휴대폰 번호를 입력하십시요")
    document.dj_reserve.dj_phone1.focus()
    return false;
   }else if(document.dj_reserve.dj_phone1.value.length<3 ||
document.dj_reserve.dj_phone2.value.length<3 || document.dj_reserve.dj_phone3.value.length <4){
    alert("휴대폰 번호를 정확히 입력해 주세요")
    document.dj_reserve.dj_phone1.focus()
    return false;
   }
  if(document.dj_reserve.dj_tel1.value>0 || document.dj_reserve.dj_tel2.value>0 ||
document.dj_reserve.dj_tel3.value>0){
    if(document.dj_reserve.dj_tel1.value<2 ||
document.dj_reserve.dj_tel2.value<3 || document.dj_reserve.dj_tel3.value<4){
     alert("전화번호를 정확히 입력해 주세요")
     document.dj_reserve.dj_tel1.focus()
     return false;
    }
   }
  if(document.dj_reserve.dj_title.value==""){
   alert("제목을 작성해 주세요")
   document.dj_reserve.dj_title.focus()
   return false
  }
   if(document.dj_reserve.dj_email.value.length>0){
    if((document.dj_reserve.dj_email.value.indexOf("@")<0)||
(document.dj_reserve.dj_email.value.indexOf(".")<0)){
     alert("이메일 주소의 형식이 틀립니다.(예)
ooo@xxxx.co.kr 등의 형식으로 입력")
     document.dj_reserve.dj_email.focus()
     return false
    }
    if(document.dj_reserve.dj_email.value.indexOf("http")>=0 ||
(document.dj_reserve.dj_email.value.indexOf("/www.")>=0)){
     alert("http:// 나 http://www.은 이메일 주소가 아닙니
다.(예)ooo@xxxx.co.kr 등의 형식으로 입력 ")
     document.dj_reserve.dj_email.focus()
     return false
    }
    if((document.dj_reserve.dj_email.value.indexOf("hanmail.net")>=0)
||(document.dj_reserve.dj_email.value.indexOf("daum.net")>=0)){
     alert("한메일이나 다움메일은 사용하실 수 없습니
다.\n다른 메일주소를 등록하세요")
     document.dj_reserve.dj_email.focus()
     return false;
    }
    if(document.dj_reserve.dj_email.value.indexOf("/")>=0){
     alert("이메일 주소에 (/)를 사용할수 없습니다")
     document.dj_reserve.dj_email.focus()
     return false;
    }
    var
comp="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*().-_+=<,>?':;[]
{}";
    var string=document.dj_reserve.dj_email.value;
    var len=string.length;
    for(i=0;i<len;i++)
    {
     if(comp.indexOf(string.substring(i,i+1))<0)
     {
      alert("이메일 아이디에 한글 문자가 들어
가면 안됩니다. 다시 입력해 주십시오");
      document.dj_reserve.dj_email.focus();
      return false;
     } 
    }
   }
 }
 
 </script>
 
 <form name="dj_reserve" method="post" action="reserv_right_ok.asp" onsubmit="return check()">

     <tr>
                      <td valign="top" bgcolor="#FFFFFF"><table width="613" border="0" cellspacing="0"
cellpadding="0">
                          <tr>
                            <td height="613" valign="top"> <table width="610" border="0" cellspacing="0"
cellpadding="0">
                                <tr>
                                  <td height="94"><img src="images/reserv_01.gif" width="610" height="94"></td>
                                </tr>
                                <tr>
                                  <td height="77" background="images/reserv_02.gif">&nbsp;</td>
                                </tr>
                                <tr>
                                  <td height="307" align="center"> <table width="530" height="413" border="0"
cellpadding="0" cellspacing="0">
                                      <tr>
                                        <td height="12">&nbsp;</td>
                                      </tr>
                                      <tr>
                                        <td height="401" valign="top" background="images/reserv_03.gif">
                                          <table width="530" border="0" cellspacing="0" cellpadding="0">
                                            <tr>
                                              <td><img src="images/reserv_04.gif" width="530" height="13"></td>
                                            </tr>
                                          </table>
                                          <table width="489" height="368" border="0" cellpadding="0" cellspacing="0">
                                            <tr>
                                              <td>&nbsp;</td>
                                              <td height="27">&nbsp;</td>
                                              <td>&nbsp;</td>
                                            </tr>
                                            <tr>
                                              <td width="38">&nbsp;</td>
                                              <td width="84" height="25">행사선택</td>
                                              <td width="367"><select name="dj_select" style="border-width:1px; border-
color:#999999; border-style:solid;">
                                                  <option value="출장파티">출장파티</option>
                                                  <option value="결혼피로연">결혼피로연</option>
                                                  <option value="바베큐파티">바베큐파티</option>
                                                  <option value="상차림주문">상차림주문</option>
                                                  <option value="장례음식">장례음식</option>
                                                  <option value="얼음조각">얼음조각</option>
                                                  <option value="생맥주파티">생맥주파티</option>
                                                  <option value="도시락주문">도시락주문</option>
                                                  <option value="집들이파티">집들이파티</option>
                                                </select></td>
                                            </tr>
                                            <tr>
                                              <td>&nbsp;</td>
                                              <td>행사일자</td>
                                              <td><input name="dj_date1" type="text" size="4" maxlength="4" class="box"
onKeyPress="onlyNumber();">
                                                년
                                                <input name="dj_date2" type="text" size="2" maxlength="2" class="box"
onKeyPress="onlyNumber();">
                                                월
                                                <input name="dj_date3" type="text" size="2" maxlength="2" class="box"
onKeyPress="onlyNumber();">
                                                일</td>
                                            </tr>
                                            <tr>
                                              <td>&nbsp;</td>
                                              <td>예상인원</td>
                                              <td><input name="dj_pe" type="text" size="4" maxlength="4" class="box"
onKeyPress="onlyNumber();">
                                                명</td>
                                            </tr>
                                            <tr>
                                              <td>&nbsp;</td>
                                              <td>신청자성명</td>
                                              <td><input name="dj_name" type="text" size="12" maxlength="12"
class="box"></td>
                                            </tr>
                                            <tr>
                                              <td>&nbsp;</td>
                                              <td>전화번호</td>
                                              <td><input name="dj_tel1" type="text" size="3" maxlength="3" class="box"
onKeyPress="onlyNumber();">
                                                -
                                                <input name="dj_tel2" type="text" size="4" maxlength="4" class="box"
onKeyPress="onlyNumber();">
                                                -
                                                <input name="dj_tel3" type="text" size="4" maxlength="4" class="box"
onKeyPress="onlyNumber();"></td>
                                            </tr>
                                            <tr>
                                              <td>&nbsp;</td>
                                              <td height="18">휴대전화</td>
                                              <td><input name="dj_phone1" type="text" size="3" maxlength="3" class="box"
onKeyPress="onlyNumber();">
                                                -
                                                <input name="dj_phone2" type="text" size="4" maxlength="4" class="box"
onKeyPress="onlyNumber();">
                                                -
                                                <input name="dj_phone3" type="text" size="4" maxlength="4" class="box"
onKeyPress="onlyNumber();"></td>
                                            </tr>
                                            <tr>
                                              <td>&nbsp;</td>
                                              <td>이메일</td>
                                              <td><input name="dj_email" type="text" size="40" maxlength="40" class="box">
                                                </td>
                                            </tr>
         
  <tr>
                                              <td>&nbsp;</td>
                                              <td>제 목</td>
                                              <td><input name="dj_name" type="text" size="40" maxlength="40" class="box">
                                                </td>
                                            </tr>
                                            <tr>
                                              <td valign="top">&nbsp;</td>
                                              <td height="135" valign="top"><br>
                                                요청사항</td>
                                              <td><textarea name="dj_content"   cols="50" rows="8" style="border-width:1px;
border-color:#999999; border-style:solid;"></textarea></td>
                                            </tr>
                                            <tr>
                                              <td height="25" colspan="3" valign="top"><table width="480" border="0"
align="center" cellpadding="0" cellspacing="0">
                                                  <tr>
                                                    <td width="243" height="36" align="right" valign="bottom"><input
type="image" src="images/reserv_btn.gif" width="53" height="23" border="0"></td>
                                                    <td width="27">&nbsp;</td>
                                                    <td width="210" valign="bottom"><a href="reserv_list.asp"><img
src="images/reserv_btn4.gif" width="53" height="23" border="0"></a></td>
                                                  </tr>
                                                </table></td>
                                            </tr>
                                          </table></td>
                                      </tr>
                                    </table></td>
                                </tr>
                                <tr>
                                  <td>&nbsp;</td>
                                </tr>
                              </table></td>
                          </tr>
                        </table></td>
                    </tr>
                  </table></td>
              </tr>
            </table></td>
        </tr>
        <tr>
          <td height="42" background="../images/index_74.gif">&nbsp;</td>
        </tr>
 </form>
      </table>
-------------------------------------------------------------------------------
실행파일
---------------------------------------------------------------------------------
<%option explicit%>
<!--#include virtual="/include/dbopen.asp"-->
<%
Dim idx,dj_select,dj_date,dj_pe,dj_name,dj_tel,dj_phone,dj_email,dj_content,dj_title,join_date
idx=request("idx")
dj_select=request("dj_select")
dj_date=request("dj_date1")&"-"&request("dj_date2")&"-"&request("dj_date3")
dj_pe=request("dj_pe")
dj_name=request("dj_name")
dj_tel=request("dj_tel1")&"-"&request("dj_tel2")&"-"&request("dj_tel3")
dj_phone=request("dj_phone1")&"-"&request("dj_phone2")&"-"&request("dj_phone3")
dj_email=request("dj_email")
dj_content=request("dj_content")
join_date=request("join_date")
dj_title=request("dj_title")
 
 dj_title = replace(dj_title,"'","''")
 dj_content = replace(dj_content,"'","''")

Dim rs,sql,re_group

set rs=server.createobject("ADODB.Recordset")

sql = "select top 1 idx from dj_reserve order by idx desc"
rs.open sql,db,adopenforwardonly,adlockreadonly,adcmdtext


if rs.bof or rs.eof then
re_group = 1
else
re_group=rs("idx")+1
end if

rs.close
set rs=nothing


 SQL = "INSERT INTO dj_reserve
(dj_select,dj_pe,dj_tel,dj_phone,dj_email,dj_content,dj_date,dj_title,dj_name) values('" & dj_select
& "','"& dj_pe&"','" & dj_tel & "','" & dj_phone & "','" & dj_email & "','" & dj_content & "','" & dj_date & "','" &
dj_title & "','" & dj_name&"')"

 db.Execute SQL
 db.close
 Set db = Nothing

Dim html
html = "<table width='613' border='0' cellpadding='0' cellspacing='0' align='center'><!--1--><tr><td valign='top'
bgcolor='#FFFFFF'><table width='613' border='0' cellspacing='0' cellpadding='0'><!--2--><tr><td height='613'
valign='top'><table width='610' border='0' cellspacing='0' cellpadding='0'><!--3--><tr><td height='94'><img
src='http://deajungfood.co.kr/reserv/images/img_mail_top.gif' width='610' height='78'></td></tr><tr><td
height='10' background='images/reserv_02.gif'>&nbsp;</td></tr><tr><td height='307' align='center'><table
width='530' height='413' border='0' cellpadding='0' cellspacing='0'><!--4--><tr><td
height='12'>&nbsp;</td></tr><tr><td height='401' valign='top'><table width='530' border='0' cellspacing='0'
cellpadding='0'><!--5--><tr><td bgcolor='#E3E3E3'><table width='530' border='0' cellspacing='0'
cellpadding='0'><!--6--><tr><td><img src='http://deajungfood.co.kr/reserv/images/reserv_04.gif' width='530'
height='13'></td></tr></table><!--6`--><table width='530' border='0' cellpadding='1' cellspacing='1'><!--7--
><tr bgcolor='EFEFEF'><td width='77' height='25'><div align='center'>제목</div></td><td height='25'
colspan='5' bgcolor='EFEFEF'>&nbsp;&nbsp; [dj_title]</td></tr><tr bgcolor='#FFFFFF'><td height='25'
bgcolor='#E1E1E1'><div align='center'>등록일</div></td><td width='87' height='25' align='center'>[join_date]
</td><td width='68' height='25' align='center' bgcolor='#E1E1E1'>작성자</td><td width='81' height='25'
align='center'>[dj_name]</td><td width='73' height='25' align='center' bgcolor='#E1E1E1'>이메일</td><td
width='125' height='25' align='center'>[dj_email]</td></tr><tr bgcolor='#FFFFFF'><td height='339'
colspan='6'><div align='center'><table width='489' height='290' border='0' cellpadding='0' cellspacing='0'><!--
8--><tr><td width='38' height='23'>&nbsp;</td><td width='69' height='23'>행사종류</td><td width='382'
height='23'>[dj_select]</td></tr><tr><td height='23'>&nbsp;</td><td height='23'>행사일자</td><td height='23'>
[dj_date]</td></tr><tr><td height='23'>&nbsp;</td><td height='23'>예상인원</td><td height='23'>[dj_pe]명
</td></tr><tr><td height='23'>&nbsp;</td><td height='23'>신청자성명</td><td height='23'>[dj_name]
</td></tr><tr><td height='23'>&nbsp;</td><td height='23'>전화번호</td><td height='23'>[dj_tel]
</td></tr><tr><td height='23'>&nbsp;</td><td height='23'>휴대전화</td><td height='23'>[dj_phone]
</td></tr><tr><td height='23'>&nbsp;</td><td height='23'>이메일</td><td height='23'>[dj_email]
</td></tr><tr><td height='129' valign='top'>&nbsp;</td><td height='129' valign='top'>요청사항</td><td
height='129' valign='top'>[content]</td></tr></table><!--8`--></div></td></tr></table><!--7`--
></td></tr></table><!--5`--><table width='530' height='13' border='0' cellpadding='0' cellspacing='0'><!--9--
><tr> <td height='13' align='center'> </td></tr></table><!--9`--></td></tr></table><!--4`--
></td></tr><tr><td><img src='http://deajungfood.co.kr/reserv/images/img_mail_bottom.gif' width='610'
height='43'></td></tr></table><!--3`--></td></tr></table><!--2`--></td></tr></table><!--1`--
></td></tr></table>"
html = replace(html,"[dj_title]",dj_title)
html = replace(html,"[join_date]",date)
html = replace(html,"[dj_name]",dj_name)
html = replace(html,"[dj_email]",dj_email)
html = replace(html,"[dj_select]",dj_select)
html = replace(html,"[dj_date]",dj_date)
html = replace(html,"[dj_pe]",dj_pe)
html = replace(html,"[dj_tel]",dj_tel)
html = replace(html,"[dj_phone]",dj_phone)
html = replace(html,"[content]",dj_content)

'Dim smail, cdomailformatmime
' Set SMail = Server.CreateObject("CDONTS.Newmail")
' with SMail
'  .from = "vavasoft@yahoo.co.kr(바바소프트)"
'  .to = "dowoo1@naver.com"
'  .subject = "대중잔치 예약이 1건 접수되었습니다."
'  .body = html
'  .bodyformat = 0 'html 일때 0, text일때 1
'  .MailFormat = 0
'  .mailformat = cdomailformatmime
'  .Send
' end with
' set smail = nothing
%>
<script language="javascript">
 alert("예약이 접수되었습니다.");
 location="/";
</script>
----------------------------------------------------------------------------------
그런데 예약실행하면 아래와 같은 에러가 뜹니다.
에러가
Cannot insert the value NULL into column 'idx', table 'daejungfood.daejungfood.dj_reserve'; column does not allow nulls. INSERT fails. idx는 기본키인데..인서트 부분에 빼면 이런 에러가 나고..넣으면 중복키라고 에러가 나구요

----------------------------------------------
sql 구문에 이상이 있는듯 한데...선언하는 부분이 잘못되었던지..

혹시 위에 부분 보시고 아시는 분 있으신가요?

이 글에 대한 댓글이 총 2건 있습니다.
  이번엔 아래의 에러가 뜨네요..아 미치겠네요

Microsoft OLE DB Provider for SQL Server

String or binary data would be truncated.

/reserv/reserv_right_ok.asp, line 40

error '80040e57'
김훈(kvulc)님이 2007-01-02 17:36에 작성한 댓글입니다.

위에 발생한 에러는 컬럼의 사이즈가 insert하려는 데이타보다 작을 때 발생하는 에러 입니다.


declare @table table
(
name varchar(10)

)

insert into @table(name) values('01234567891')

가을남자님이 2007-01-03 19:06에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
3236쿼리 좀 도와 주세요.... ㅠ.ㅠ [2]
SQL 왕초보
2007-01-03
3094
3235테이블을 합칠려구합니다. 쿼리를 어떻게 짜야하는지 봐주세여
cho
2007-01-03
2371
3226프로시져 문법에 대한 몇 가지 질문 [2]
이정훈
2007-01-02
4923
3225sql 입력 부분 이렇게 나네요 [2]
김훈
2007-01-02
6622
3224MDB에서 auto number 필드 값을 미리 알수 있나요 ?
윤진철
2006-12-30
2239
3223프로시져 매개변수 변환 [2]
김연성
2006-12-29
3075
3222txt파일 복구 쿼리문에 대해서... [1]
김장호
2006-12-28
2657
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다