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

+ Recent posts