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 1055 게시물 읽기
No. 1055
오류 질문
작성자
김근영
작성일
2003-11-22 17:04
조회수
64,719

안녕하세요.......

 

이러한 오류가 발생합니다... 도움을 주십시요........

 

 

http://www.kgy9041.com 페이지의 왼쪽로그인 부분에 회원가입을 클릭하면

가입을 하고 나면 오류가 발생합니다..

 

----

<오류메세지>

Microsoft OLE DB Provider for SQL Server error '80040e2f'

'kimgeun_db.dbo.member' 테이블, 'mem_id' 열에 NULL 값을 삽입할 수 없습니다. 열에서 null을 사용할 수 없습니다. INSERT이(가) 실패했습니다.

/Members/regist_ok.asp, line 62

 

 

<회원가입 소스>

 

regist.asp

 

<html>
<head><title>회원가입</title>
<link rel="stylesheet" type="text/css" href="/stylesheet.css">
<style type="text/css">
  td {padding-left:3;}
  table.content {font-size:10pt;font-family:돋움;font-color:#002C57;}
.style1 {
 color: #666666;
 font-weight: bold;
}
body {
 margin-left: 0px;
 margin-top: 0px;
 margin-right: 0px;
 margin-bottom: 0px;
}
.table {border-left:#cccccc 1px solid;border-top:#cccccc 1px solid;border-bottom:#cccccc 1px solid;}
.tables {border-top:#cccccc 1px solid;border-bottom:#cccccc 1px solid;}
</style>
<script language="JavaScript">
<!--
function check_id() {
  var urlString;
  urlString = "/members/check_id.asp?checkid=" + document.registform.userid.value;
  window.open(urlString, "check_id","resizable=yes,top=82,left=378,width=635,height=164")
}
function find_zipcode() {
   window.open("/members/find_zipcode.asp", "find_zipcode","resizable=yes,top=82,left=364,width=652,height=250,scrollbars=1" );
}
function remove_zipcode() {
  document.registform.zip1.value = "";
  document.registform.zip2.value = "";
  document.registform.address1.value = "";
  document.registform.address2.value = "";
}
function checkit() {
  var str;
  str = document.registform.name.value;
  if(str == "") { 
    alert("이름을 기입해 주십시요");
    document.registform.name.focus();
    return true;
  }
  str = document.registform.userid.value;
  if(str == "") {
    alert("아이디는 반드시 입력해야 합니다.");
    document.registform.userid.focus();
    return true;
  }
  if(str.length < 4 || str.length > 10) { 
    alert("아이디는 4글자 이상, 10글자 이내이어야 합니다.");
    document.registform.userid.focus();
    return true;
  }
  for(i=0;i<str.length;i++) {
    if(str.charCodeAt(i)>12592) { 
      alert("한글 아이디는 안됩니다. 다시 입력해 주세요.");
      document.registform.userid.value="";
      document.registform.userid.focus();
      return false;
      break;
    }
  }
  str = document.registform.pwd1.value;
  if(str == "") {
    alert("비밀번호는 반드시 입력해야 합니다.");
    document.registform.pwd1.focus();
    return true;
  }
  if(document.registform.pwd1.value != document.registform.pwd2.value) {
    alert("비밀번호가 일치하지 않습니다.");
    document.registform.pwd2.focus();
    return true;
  }
  str1 = document.registform.zip1.value;
  str2 = document.registform.zip2.value;
  if(str1 == "" || str2 == "") {
    alert("우편번호를 정확히 입력해 주세요.");
    return true;
  }
  var jumin1 =document.registform.jumin1.value;
  var jumin2 =document.registform.jumin2.value;
  if((document.registform.jumin1.value == "") || (document.registform.jumin2.value == "")) {
    alert("주민등록번호를 입력해 주세요.");
    document.registform.jumin1.focus();
    return true;
  }
  str = document.registform.email.value;
  if(str == "") {
    alert("메일주소를 입력해야 합니다.");
    document.registform.email.focus();
    return true;
  }
  document.registform.submit();
  return true;
}

function Validate()
{
var f1=document.registform.jumin1.value.substring(0,1)
var f2=document.registform.jumin1.value.substring(1,2)
var f3=document.registform.jumin1.value.substring(2,3)
var f4=document.registform.jumin1.value.substring(3,4)
var f5=document.registform.jumin1.value.substring(4,5)
var f6=document.registform.jumin1.value.substring(5,6)
var hap=f1*2+f2*3+f3*4+f4*5+f5*6+f6*7
var s1=document.registform.jumin2.value.substring(0,1)
var s2=document.registform.jumin2.value.substring(1,2)
var s3=document.registform.jumin2.value.substring(2,3)
var s4=document.registform.jumin2.value.substring(3,4)
var s5=document.registform.jumin2.value.substring(4,5)
var s6=document.registform.jumin2.value.substring(5,6)
var s7=document.registform.jumin2.value.substring(6,7)
hap=hap+s1*8+s2*9+s3*2+s4*3+s5*4+s6*5
hap=hap%11
hap=11-hap
hap=hap%10

if (hap != s7){
        alert('잘못된 주민등록번호 입니다')
        document.registform.jumin1.value = ""
        document.registform.jumin2.value = ""
        document.registform.jumin1.focus()
        }
}
//-->
</script>

<meta http-equiv="Content-Type" content="text/html; charset=euc-kr"></head>
<body bgcolor="#ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<form name="registform" action="/Members/regist_ok.asp" method="post">
<table width="600" height="452" border="0" cellpadding="0" cellspacing="0" class="content">
      <tr>
       
      <td height="22" colspan="4"><img src="mem_img/mem_title_bar.jpg" width="635" height="22"></td>
      </tr>
      <tr>
        <td height="25" colspan="4" align="center" width="635">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font face="돋움" size="-1">회원가입</font></td>
      </tr>
      <tr>
        <td height="5" colspan="4" width="635">&nbsp;</td></tr> <!--빈 줄 -->
      <tr>
     
       
      <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><font color="#FFFFFF" style="font-size:12px"><strong>이름</strong></font></td>
        <td width="8" height="25" bgcolor="#AAA3B5" class="tables">&nbsp;</td>
        <td width="541" height="25" style="border-style:solid;border-width:1"><input type="text" size="10" name="name" maxlength="8"></td>
      </tr>
      <tr>
       
       
      <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><strong><font color="#FFFFFF" style="font-size:12px">사용자
        ID</font></strong></td>
        <td height="25" bgcolor="#AAA3B5" class="tables">&nbsp;</td>
        <td width="541" height="25" style="border-style:solid;border-width:1"><input type="text" size="10" name="userid" maxlength="10">
          <a href="javascript:check_id();">[ID 중복확인]</a></td>
      </tr>
      <tr>
       
       
      <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><strong><font color="#FFFFFF" style="font-size:12px">암호</font></strong></td>
        <td height="25" bgcolor="#AAA3B5" class="tables">&nbsp;</td>
        <td width="541" height="25" style="border-style:solid;border-width:1"><input type="password" size="10" name="pwd1" maxlength="8">
        ▶영문,숫자 4자 이상 10자까지</td>
      </tr>
      <tr>
       
       
      <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><strong><font color="#FFFFFF" style="font-size:12px">암호확인</font></strong></td>
        <td height="25" bgcolor="#AAA3B5" class="tables">&nbsp;</td>
        <td width="541" height="25" style="border-style:solid;border-width:1"><input type="password" size="10" name="pwd2" maxlength="8"></td>
      </tr>
      <tr>
       
       
      <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><strong><font color="#FFFFFF" style="font-size:12px">우편번호</font></strong></td>
        <td height="25" bgcolor="#AAA3B5" class="tables">&nbsp;</td>
        <td width="541" height="25" style="border-style:solid;border-width:1">
          <input type="text" size="3" name="zip1" maxlength="3" onFocus="document.registform.address2.focus()">
          -
          <input type="text" size="3" name="zip2" maxlength="3" onFocus="document.registform.address2.focus()">
          <a href="javascript:find_zipcode();">[우편번호 찾기]</a> &nbsp;&nbsp; <a href="javascript:remove_zipcode();">[우편번호 지우기]</a></td>
      </tr>
      <tr>
       
       
      <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><strong><font color="#FFFFFF" style="font-size:12px">주소1</font></strong></td>
        <td height="25" bgcolor="#AAA3B5" class="tables">&nbsp;</td>
        <td width="541" height="25" style="border-style:solid;border-width:1"><input size="33" name="address1" maxlength="33" onFocus="document.registform.address2.focus()"></td>
      </tr>
      <tr>
       
       
      <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><strong><font color="#FFFFFF" style="font-size:12px">주소2(번지)</font></strong></td>
        <td height="25" bgcolor="#AAA3B5" class="tables">&nbsp;</td>
        <td width="541" height="25" style="border-style:solid;border-width:1"><input size="33" name="address2" maxlength="33"></td>
      </tr>
      <tr>
       
       
      <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><strong><font color="#FFFFFF" style="font-size:12px">전화번호</font></strong></td>
        <td height="25" bgcolor="#AAA3B5" class="tables">&nbsp;</td>
        <td width="541" height="25" style="border-style:solid;border-width:1"><input type="text" size="17" name="tel" maxlength="20">
▶ 예) 02-345-6789 / 011-123-4567</td>
      </tr>
      <tr>
      
       
      <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><font color="#FFFFFF" style="font-size:12px"><strong>주민등록번호</strong></font></td>
        <td height="25" bgcolor="#AAA3B5" class="tables">&nbsp;</td>
        <td width="541" height="25" style="border-style:solid;border-width:1"><input type="text" size="6" name="jumin1" maxlength="6">
-
  <input type="text" size="7" name="jumin2" maxlength="7" onBlur="Validate();"></td>
      </tr>
      <tr>
       
       
      <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><strong><font color="#FFFFFF" style="font-size:12px">성별</font></strong></td>
        <td height="25" align="left" bgcolor="#AAA3B5" class="tables">&nbsp;</td>
        <td width="541" height="25" align="left" style="border-style:solid;border-width:1"><input type="radio" name="sex" value="M" checked>
          남자
            <input type="radio" name="sex" value="F">
        여자</td>
      </tr>
      <tr>
       
       
      <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><strong><font color="#FFFFFF" style="font-size:12px">직업</font></strong></td>
        <td height="25" bgcolor="#AAA3B5" class="tables">&nbsp;</td>
        <td width="541" height="25" style="border-style:solid;border-width:1"><select name="job" size="1" style="font-family: 돋움; font-size: 12; background-color: rgb(255,255,255); color: rgb(0,0,0)">
          <option value="not">선택하여 주십시오.
          <option value="회사원">회사원
          <option value="학생">학생
          <option value="주부">주부
          <option value="자영업">자영업
          <option value="공무원">공무원
          <option value="기타">기타
        </select></td>
      </tr>
      <tr>
      
       
      <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><strong><font color="#FFFFFF" style="font-size:12px">email
        주소</font></strong></td>
        <td height="25" bgcolor="#AAA3B5" class="tables">&nbsp;</td>
        <td width="541" height="25" style="border-style:solid;border-width:1"><input type="text" size="32" name="email" maxlength="40"></td>
      </tr>
      <tr>
       
       
      <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><strong><font color="#FFFFFF" style="font-size:12px">관심분야</font></strong></td>
  <td height="25" bgcolor="#AAA3B5" class="tables">&nbsp;</td>
        <td width="541" height="25" style="border-style:solid;border-width:1">
        <table width="541" height="25" border="0" class="content">
          <tr>
            <td width="33%"><input type="checkbox" name="interest" value="국내가요">국내가요</td>
            <td width="33%"><input type="checkbox" name="interest" value="POP/Rock">POP/Rock</td>
            <td width="34%"><input type="checkbox" name="interest" value="HipHop/R&B">HipHop/R&B</td></tr>
          <tr>
            <td><input type="checkbox" name="interest" value="Jazz">Jazz</td>
            <td><input type="checkbox" name="interest" value="New Age">New Age</td>
            <td><input type="checkbox" name="interest" value="영화음악">영화음악</td></tr>
          <tr>
            <td><input type="checkbox" name="interest" value="가곡">가곡</td>
            <td><input type="checkbox" name="interest" value="캐롤">캐롤</td>
            <td><input type="checkbox" name="interest" value="국악">국악</td></tr>
          <tr>
            <td><input type="checkbox" name="interest" value="종교음악">종교음악</td>
            <td><input type="checkbox" name="interest" value="실용음악">실용음악</td>
            <td><input type="checkbox" name="interest" value="유아/아동">유아/아동</td></tr>
          <tr>
            <td><input type="checkbox" name="interest" value="Classic">Classic</td>
            <td><input type="checkbox" name="interest" value="World Music">World Music</td>
            <td>&nbsp;</td></tr>
        </table>
        </td>
       
      </tr>
      <tr>
       
       
      <td width="86" height="25" align="right" bgcolor="#AAA3B5" class="table"><font color="#FFFFFF" style="font-size:12px"><strong>자기소개</strong></font></td>
        <td height="25" bgcolor="#AAA3B5" class="tables">&nbsp;</td>
        <td width="541" height="25" style="border-style:solid;border-width:1"><textarea rows="5" cols="58" name="intro" wrap="physical"></textarea></td>
      </tr>
      <tr>
        <td height="50" colspan="4" width="635">
        <center>
        <input type="button" value="회원 가입" OnClick="checkit();" style="width:65px;background-color:#AAA3B5;color:#ffffff">&nbsp;&nbsp;&nbsp;
        <input type="reset" value="취소(재작성)" style="width:85px;color:#ffffff;background-color:#AAA3B5;"></center>
  </td>
   </tr>
  </table>
 </td>
 </tr>
</table>
</form>
</body>
</html>

 

 

regist_ok.asp ---이건 가입 처리 소스

 

<%
jumin = Request("jumin1") & "-" & Request("jumin2")
str="Provider=SQLOLEDB.1;Data Source=localhost;Initial catalog=kimgeun_db;User Id=kimgeun;Password=kgykgy;"
Set db = Server.CreateObject("ADODB.Connection")
db.Open str
SQL = "Select mem_userid From member Where mem_userid='" & Request("userid") & "'"
Set myID = db.Execute(SQL)
SQL = "select mem_jumin from member where mem_jumin='" & jumin & "'" 
Set myJumin = db.Execute(SQL)
If Not(myID.EOF) Then
%>
<script language="javascript">
  alert("이미 존재하는 아이디입니다. 다시 기입해주세요");
  history.back();
</script>
<%
Elseif Not(myJumin.EOF) Then
%>
<script language="javascript">
  alert("이미 존재하는 주민등록번호입니다. 정확히 기입해 주세요");
  history.back();
</script>
<%
myID.close
Set myID = Nothing
myJumin.close
Set myJumin = Nothing
Else
  name = Request("name")
  userid = Request("userid")
  pwd = Request("pwd1")
  zip = Request("zip1") & "-" & Request("zip2")
  address1 = Trim(Request("address1"))
  address2 = Trim(Request("address2"))
  tel = Request("tel")
  jumin = Request("jumin1") & "-" & Request("jumin2")
  sex = Request("sex")
  job = Request("job")
  email = Request("email")
  For i=1 To Request("interest").count
    interest = interest & "/" & Request("interest")(i)
  Next
    intro = Request("intro")
    intro = Replace(intro,"'","''")
 '************************************여기서부터 DB에 등록하는 과정입니다.****************************
    SQL = "Insert Into Member (mem_name,mem_userid,mem_pwd,mem_zip,"
    SQL = SQL & "mem_address1,mem_address2,mem_tel,mem_jumin,"
    SQL = SQL & "mem_sex,mem_job,mem_interest,mem_email,mem_intro) Values "
    SQL = SQL & "('" & name & "','"
    SQL = SQL & userid & "','"
    SQL = SQL & pwd & "','"
    SQL = SQL & zip & "','"
    SQL = SQL & address1 & "','"
    SQL = SQL & address2 & "','"
    SQL = SQL & tel & "','"
    SQL = SQL & jumin & "','"
    SQL = SQL & sex & "','"
    SQL = SQL & job & "','"
    SQL = SQL & interest & "','"
    SQL = SQL & email & "','"
    SQL = SQL & intro & "')"
    db.Execute SQL
    'Response.Write SQL
    'Response.End
%>
<script language="javascript">
  alert("회원가입을 축하드립니다. \n\n회원 로긴을 해주십시요");
  location.replace("/main.asp");
  self.close();
</script>
<% End If%>

 

 


[저의 ms sql 테이블 ]  --- 여기서는 mem_id 만 기본키이고 데이터 형식은 일련번호입니다. 그리고 이건 원래 access db 입니다. 그래서 ms sql 로 바꾼 겁니다.

  열 이름 데이터 형식 길이(Byte) 널값 허용 작업
  mem_id   int   4   NOT NULL   변경 삭제 인덱스 기본키
  mem_name   nvarchar   100   NULL   변경 삭제 인덱스 기본키
  mem_userid   nvarchar   100   NULL   변경 삭제 인덱스 기본키
  mem_pwd   nvarchar   100   NULL   변경 삭제 인덱스 기본키
  mem_address1   nvarchar   100   NULL   변경 삭제 인덱스 기본키
  mem_address2   nvarchar   100   NULL   변경 삭제 인덱스 기본키
  mem_zip   nvarchar   100   NULL   변경 삭제 인덱스 기본키
  mem_tel   nvarchar   100   NULL   변경 삭제 인덱스 기본키
  mem_jumin   nvarchar   100   NULL   변경 삭제 인덱스 기본키
  mem_sex   nvarchar   100   NULL   변경 삭제 인덱스 기본키
  mem_job   nvarchar   100   NULL   변경 삭제 인덱스 기본키
  mem_interest   nvarchar   200   NULL   변경 삭제 인덱스 기본키
  mem_email   nvarchar   100   NULL   변경 삭제 인덱스 기본키
  mem_intro   ntext   16   NULL   변경 삭제 인덱스 기본키
  mem_mileage   int   4   NULL   변경 삭제 인덱스 기본키
  mem_rate   int   4   NULL   변경 삭제 인덱스 기본키

도데체 어디에 오류가  났는지 알 수가 없군요.........

아 참, mem_id 에 insert 가 되는 지 모르겠습니다....

이상입니다... 그러니 도움을 주십시요................

 

 

 

 

이 글에 대한 댓글이 총 2건 있습니다.

62줄 주석처리하구

63,64 주석풀고 다시 하면 SQL문장이 나오잖아요.

 

이것을 쿼리분석기에 붙여서 해보세요. 그러면 왜 그러는지 더 정확한 원인이 나올거 같습니다.

 

그리고 소스상에 DB주소, 아이디, 패스 다 나와 있네요. 제가 접속해보니 되는군요. 수정하세요

곰돌이님이 2003-11-24 22:04에 작성한 댓글입니다. Edit

켁....

insert문에 필드명을 잘못 입력하셨네요.

 

회원 테이블에 회원아이디를 나타내는 필드명은 mem_id인데

insert문에서는 mem_userid라고 해 놓으셨네요.

 

수정하신 후 다시 시도해 보세요 ^^

 

결국 프로그램은 오타와의 전쟁이라는...^^

 

이순영님이 2003-11-28 11:02에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
1058데이타 입력시 에러가 뜨는데 어떤내용의 에러인지요.
미노
2003-11-24
6022
1057백업에 관한 질문 있습니다..도움 부탁드립니다..
박은규
2003-11-24
4114
1056이건 쿼리를 어떻게 만들어야 되나요...??
이한
2003-11-23
4383
1055오류 질문 [2]
김근영
2003-11-22
64719
1054update할 때
GIX
2003-11-21
4383
1053mssql에서 사용하던 게시판을 mysql로 바꾸었는데, 좀 가르쳐주세요. [1]
김철희
2003-11-20
5332
1051[질문]mssql case 문의 중첩 [2]
이진수
2003-11-20
8627
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.024초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다