인터넷에서 정보 검색해서 찾았는데 디버깅 중에 몇 가지 문제점을 발견했습니다. 몇 가지 수정 후에도 여전히 몇 가지 문제점이 있지만 일반적인 용도로는 사용할 수 있습니다. 데이터 유형 문제와 SQL Server와 액세스 간의 차이점은 고려되지 않았습니다. 앞으로 시간이 나면 개선하겠습니다. 누구든지 개선하면 사본을 보내주세요.
다음과 같이 코드 코드를 복사합니다.
<%
classSQLString
'************************************
'변수 정의
'************************************
'sTableName ---- 테이블 이름
'iSQLType ----SQL 문 유형: 0-추가, 1-업데이트, 2-삭제, 3-쿼리
'sWhere ---- 조건
'sOrder ---- 정렬 방법
'sSQL ---- 값
개인 sTableName,iSQLType,sWhere,sOrder,sSQL
'************************************
'클래스 초기화/종료
'************************************
비공개 하위 클래스_Initialize()
s테이블이름=""
iSQL유형=0
s어디=""
순서=""
sSQL=""
서브 끝
비공개 하위 클래스_Terminate()
서브 끝
'************************************
'재산
'************************************
'테이블 이름의 속성을 설정합니다.
공용 속성 Let TableName(값)
sTableName=값
끝 속성
'조건 설정
공공 재산 Let Where(값)
sWhere=값
끝 속성
'정렬 방법 설정
공공재산 임대순서(값)
sOrder=값
끝 속성
'쿼리문의 종류를 설정
공용 속성 Let SQLType(value)
iSQL유형=값
케이스 iSQLType 선택
사례 0
sSQL="{&*#}0 ({&*#}1) 값에 삽입 ({&*#}2)"
사례 1
sSQL="업데이트 {&*#}0 세트 {&*#}1={&*#}2"
사례 2
sSQL="{&*#}0에서 삭제"
사례 3
sSQL="{&*#}0에서 {&*#}1 선택 "
선택 종료
끝 속성
'************************************
'기능
'************************************
'필드 추가(필드 이름, 필드 값)
공개 하위 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")
선택 종료
서브 끝
'문자열 값을 반환하는 수정된 함수
'SQL 문을 반환
공용 함수 ReturnSQL()
sSQL=replace(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
기능 종료
'SQL 문을 반환
공용 함수 ReturnSQL1()
sSQL=replace(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
기능 종료
'명확한 진술
공개 하위 지우기()
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 " sender ", "'%3%' "
a.AddField " title ", "#"&now&"#"
a.AddField " 보낸 사람 ", "5 "
a.AddField " content ", " 6 "
a.AddField " sendtime ", "7"
a.AddField "플래그", 8
a.AddField " issend ", 9
응답.쓰기 a.ReturnSQl
a=아무것도 설정하지 않음
%>
<%
set a =new SQLString '클래스 객체 생성
a.TableName=" message " '테이블 이름을 메시지로 설정
'a.where=" issend =9"
'a.order=" issend 설명"
a.SQLType=0 '레코드를 추가할 쿼리 유형을 설정합니다.
a.AddField "incept", "'2'"
a.AddField " sender ", "'%3%' "
a.AddField " title ", "#"&now&"#"
a.AddField " 보낸 사람 ", "5 "
a.AddField " content ", " 6 "
a.AddField " sendtime ", "7"
a.AddField "플래그", 8
a.AddField " issend ", 9
응답.쓰기 a.ReturnSQl
a=아무것도 설정하지 않음
%>
<%
set a =new SQLString '클래스 객체 생성
a.TableName=" message " '테이블 이름을 메시지로 설정
'a.where=" issend =9"
'a.order=" issend 설명"
a.SQLType=0 '레코드를 추가할 쿼리 유형을 설정합니다.
a.AddField "incept", "'2'"
a.AddField " sender ", "'%3%' "
a.AddField " title ", "#"&now&"#"
a.AddField " 보낸 사람 ", "5 "
a.AddField " content ", " 6 "
a.AddField " sendtime ", "7"
a.AddField "플래그", 8
a.AddField " issend ", 9
응답.쓰기 a.ReturnSQl
a=아무것도 설정하지 않음
%>