온라인에서 정보를 검색해서 찾았는데, 디버깅 중에 몇 가지 문제점을 발견했습니다.
일부 수정 후에도 여전히 몇 가지 문제가 있지만 일반적인 용도로 사용할 수 있습니다.
데이터 유형 문제와 SQL Server와 액세스 간의 차이점은 고려되지 않았습니다. 앞으로 시간이 나면 개선하겠습니다.
누구든지 개선하면 사본을 보내주세요.
<%
'SQL 문자열을 생성하는 클래스입니다.
'원작: 익명
'개선: 알록시
'이메일:[email protected]
'OICQ:331622229
classSQLString
'************************************
'변수 정의
'************************************
'sTableName ---- 테이블 이름
'iSQLType ----SQL 문 유형: 0-추가, 1-업데이트, 2-삭제, 3-쿼리
'sWhere ---- 조건
'sOrder ---- 정렬 방법
'sSQL ----ValuePrivate
sTableName,iSQLType,sWhere,sOrder,sSQL
'******************************** * ***
'클래스 초기화/종료
'************************************
프라이빗 하위 클래스_Initialize()
s테이블이름=""
iSQL유형=0
s어디=""
순서=""
sSQL=""
End Sub
Private Sub Class_Terminate()
End Sub
'************************************
'재산
'************************************
'테이블 이름의 속성을 설정합니다.
공용 속성 Let TableName(값)
sTableName=값
끝 속성
'조건 설정
공공 재산 Let Where(값)
sWhere=값
끝 속성
'정렬 방법 설정
공공재산 임대순서(값)
sOrder=값
끝 속성
'쿼리문 유형 설정Public
속성 Let SQLType(value)
iSQL유형=값
케이스 iSQLType 선택
사례 0
sSQL="#0(#1) 값에 삽입 (#2)"
사례 1
sSQL="업데이트 #0 세트 #1=#2"
사례 2
sSQL="#0에서 삭제"
사례 3
sSQL="#0에서 #1을 선택하세요"
선택 종료
끝 속성
'************************************
'기능
'************************************
'필드 추가(필드 이름, 필드 값)
Public Sub AddField(sFieldName,sValue)
케이스 iSQLType 선택
사례 0
sSQL=replace(sSQL,"#1",sFieldName & ",#1")
sSQL=replace(sSQL,"#2","'" & sValue & "',#2")
사례 1
sSQL=교체(sSQL,"#1",sFieldName)
sSQL=replace(sSQL,"#2","'" & sValue & "',#1=#2")
사례 3
sSQL=replace(sSQL,"#1",sFieldName & ",#1")
선택 종료
End Sub
'SQL 문을 반환합니다.
공용 함수 ReturnSQL()
sSQL=교체(sSQL,"#0",s테이블이름)
케이스 iSQLType 선택
사례 0
sSQL=교체(sSQL,",#1","")
sSQL=교체(sSQL,",#2","")
사례 1
sSQL=교체(sSQL,",#1=#2","")
사례 3
sSQL=교체(sSQL,",#1","")
종료 선택
sWhere<>"" 및 iSQLType<>0이면
sSQL=sSQL & " where " & sWhere
종료하면
sOrder<>"" 및 iSQLType<>0인 경우
sSQL=sSQL & " 정렬 기준 " & sOrder
종료하면
ReturnSQL=sSQL
End Function
'문 지우기Public
Sub Clear()
s테이블이름=""
iSQL유형=0
s어디=""
순서=""
sSQL=""
서브 끝
수업 종료
%>
<%
'다음은 호출의 예입니다. 데이터 유형 문제에 대해서는 위 클래스의 정의를 계속 수정하십시오. 궁금한 사항이 있으면 저에게 문의하십시오.
set a =new SQLString '클래스 객체 생성
a.TableName=" message " '테이블 이름을 메시지로 설정
'a.where=" issend =9"
'a.order=" issend 설명"
a.SQLType=0 '레코드를 추가할 쿼리 유형을 설정합니다.
a.AddField "incept", "2"
a.AddField " 보낸 사람 ", " 3 "
a.AddField " title ", " 4 "
a.AddField " 보낸 사람 ", "5 "
a.AddField " content ", " 6 "
a.AddField " sendtime ", "7"
a.AddField "플래그", 8
a.AddField " issend ", 9
Response.Write a.ReturnSQl
a=아무것도 설정하지 않음
%>