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
'asp' 카테고리의 다른 글
성능 및 스타일 향상에 도움이 되는 28가지 ASP 팁 (1) | 2007.05.03 |
---|---|
정적SQL 이용하는데 (0) | 2007.05.03 |
'스프레드에서 엑셀 부르기 (0) | 2007.05.03 |
엑셀(Excel)로 변환하기 소스 (0) | 2007.05.02 |
오라클 BLOB 타입을 이미지형태로 웹페이지에서 보기 (1) | 2007.05.02 |