update를 편하게 해주는 펑션(Function) > db

본문 바로가기

db

update를 편하게 해주는 펑션(Function)

페이지 정보

작성자 서방님 댓글 0건 조회 19회 작성일 07-07-11 17:36

본문

두번째네요.. 업데이트 구문을 짜던중 , 필드개수와 값을 잘못넣어서 에러가 나더라구요..
펑션으로 만들었습니다.
이거말고도 많이 있는데... 천천히 올리겠습니다.


<%
Function TUpdateData(TableName , FlieldName , UpData , WhereQuery) ' - 테이블의 내용을 update  트랜잭션 사용

        Dim SQL '업데이트 를 돌릴때 사용할 SQL 쿼리문
        Dim ArrayFlield ' 업데이트 레코드 개수를 돌릴때 사용 (Array)
        Dim ArrayUpData '업데이트할 값을 돌릴때 사용 (Array)
        Dim i  ' for 문을 돌리기 위한 변수값

        ArrayFlield = split(FlieldName,",") ' 업데이트할 레코드를 받은후 split 로 나누어 배열변수에 넣는다.
        ArrayUpData = split(UpData,",")     ' 업데이트할 값을 받은후 split 로 나누어 배열변수에 넣는다.

        if int(Ubound(ArrayFlield)) <> int(Ubound(ArrayUpData)) Then ' 업데이트할 테이블 필드와 값의 개수를 확인한다.

                msg "업데이트 하려는 인수의 수가 맞지않습니다."  '자바스크립트 alert 호출 함수로 에러메세지 출력

        Else

              SQL = "update  " & TableName & " Set "

                   for i=0 to uBound(ArrayFlield)   ' 배열개수로 for 문을 돌린다. (업데이트 필드수 만큼)

                        SQL = SQL & ArrayFlield(i) & "='"& ArrayUpData(i) &"' "

                        if i<>uBound(ArrayFlield) Then  ' 배열개수와 필드수를 비교한다.  (마지막에 ,[콤마] 를 찍어주면 안되기 때문에 사용)

                                  SQL = " " & SQL & ","

                        End if

                   next

            if WhereQuery<>"" Then       ' where 문을 결합한다.
                SQL = SQL & " Where " & WhereQuery
            End if

            DB.Errors.clear
            DB.BeginTrans '트랜잭션 시작
            DB.Execute (SQL) 'Execute

            if DB.Errors.count>0 Then
                DB.RollbackTrans '에러가 발생한다면 트랜잭션 롤백시킨다.
                Set objError = Server.CreateObject("ADODB.Error")
                for each objError in DB.Errors
                    Msg (objerror.Description)  '에러문 출력
                Next
                objError.close
                Set objError=Nothing
                TUpdateData=false '리턴(return 에 false를 반환)
            Else
                DB.CommitTrans '에러없이 진행한다면 트랜잭션 Commit 시킨다.
                TUpdateData=true  '리턴에 true를 반환한다.
            End if
         End if
End Function
%>


펑션 사용시

<%
Dim TableName
Dim FlieldName
Dim UpData
Dim WhereQuery
Dim StrURL

'사용할 변수를 정의

    TableName = "authors"  '-테이블명 기입
    FlieldName = " au_lname ,  au_fname " '업데이트할 필드를 나열
    UpData       = " '홍' , '길동' "  '업데이트할 값 나열
    WhereQuery = " zip='94025' " ' Where 문을 기입

    if TUpdateData(TableName , FlieldName , UpData , WhereQuery)=true  Then '--- 함수 사용 (리턴값으로 true,false)
        msg "저장하였습니다."
    Else
        msg "저장중 에러가 발생하였습니다."
    End if
%>

댓글목록

등록된 댓글이 없습니다.

Total 447건 1 페이지
게시물 검색

회원로그인

접속자집계

오늘
358
어제
457
최대
592
전체
39,967

그누보드5
Copyright © seobangnim.com All rights reserved.
자바스크립트를 활성화 하세요![ 브라우저에서 자바스크립트를 활성화하는 방법 ]