인터넷에서 정보 검색해서 찾았는데 디버깅 중에 몇 가지 문제점을 발견했습니다. 몇 가지 수정 후에도 여전히 몇 가지 문제점이 있지만 일반적인 용도로는 사용할 수 있습니다. 데이터 유형 문제와 SQL Server와 액세스 간의 차이점은 고려되지 않았습니다. 앞으로 시간이 나면 개선하겠습니다. 누구든지 개선하면 사본을 보내주세요.
다음과 같이 코드를 복사합니다:<%
class SQLString
'************************************
'변수 정의
' ************************************
'sTableName ---- 테이블
이름'iSQLType --- - SQL 문 종류: 0-추가, 1-업데이트, 2-삭제, 3-쿼리'sWhere
---- 조건'sOrder
---- 정렬
방법의SQL ---- 값
Private sTableName,iSQLType,sWhere,sOrder , sSQL
'************************************
'클래스 초기화/종료
'**********************************
Private Sub Class_Initialize()
sTableName=
iSQLType =0
sWhere=
sOrder=
sSQL=
End Sub
Private Sub Class_Terminate()
End Sub
'******************************** ** **
'속성
'************************************
'테이블 이름 속성의 Public
속성을 설정합니다
.TableName(value)
sTableName=value
End Property
'조건 설정
Public Property Let Where(value)
sWhere=value
End Property
'정렬 방법 설정
Public Property Let Order(value)
sOrder=value
End Property
'쿼리 문의 유형 설정
Public 속성 Let SQLType(value)
iSQLType=value
select case iSQLType
case 0
sSQL=insert into {&*#}0 ( {& *#}1) 값 ({&*#}2)
사례 1
sSQL=업데이트 {&*#}0 설정 {&*#}1={&*#}2
사례 2
sSQL=삭제 from {&*#}0
케이스 3
sSQL=select {&*#}1 from {&*#}0
end select
End Property
'******************** ****************
'기능
'****************************** * ****
'필드 추가(필드 이름, 필드 값)
Public Sub AddField(sFieldName,sValue)
select Case iSQLType
Case 0
sSQL=replace(sSQL,{&*#}1,sFieldName & ,{&*#}1 )
sSQL=replace(sSQL,{&*#}2, & sValue & ,{&*#}2)
사례 1
sSQL=replace(sSQL,{&*#}1,sFieldName)
sSQL=replace(sSQL,{&* #}2, & sValue & ,{&*#}1={&*#}2)
사례 3
sSQL=replace(sSQL,{&*#}1,sFieldName & ,{&*#}1)
End Select
End Sub
'문자열 값을 반환하는 수정된 함수
' Return SQL 문
Public Function ReturnSQL()
sSQL=replace(sSQL , {&*#}0,sTableName)
케이스 선택 iSQLType
케이스 0
sSQL=replace(sSQL,,{&*#}1,)
sSQL=replace(sSQL,,{&*#}2,)
사례 1
sSQL=replace(sSQL,,{&*#}1={&*#}2,)
사례 3
sSQL=replace(sSQL,,{& *#}1,)
endsWhere<> 및 iSQLType<>0이면
선택
sSQL=sSQL & where & sWhere
end if
sOrder<> 및 iSQLType<>0이면 선택
sSQL=sSQL & order by & sOrder
end if
ReturnSQL=sSQL
End Function
'SQL 문 반환
Public Function ReturnSQL1()
sSQL=replace(sSQL,{&*#}0,sTableName)
select case iSQLType
case 0
sSQL=replace(sSQL, ,{&*#}1,)
sSQL=replace(sSQL,,{&*#}2,)
사례 1
sSQL=replace(sSQL,,{&*#}1={&*#}2,)
사례 3
sSQL=replace(sSQL,,{&*#}1,)
endsWhere<> 및 iSQLType<>0인 경우
선택
then
sSQL=sSQL & where & sWhere
end if
if sOrder<> 및 iSQLType<>0 then
sSQL=sSQL & order by & sOrder
end if
ReturnSQL=sSQL
End Function
'문 지우기
Public Sub Clear()
sTableName=
iSQLType=0
sWhere=
sOrder=
sSQL=
End Sub
End class
%>
호출 예:
<%
set a =new SQLString '클래스 객체 생성
a.TableName= message '테이블 이름 설정 to message
'a.where= issend =9
'a.order= issend desc
a.SQLType=0 '레코드를 추가할 쿼리 유형을 설정합니다
a.AddField incept, '2'
a.AddField sender , '%3%'
a.AddField title , #&now&#
a.AddField sender , 5
a.AddField content , 6
a.AddField sendtime , 7
a.AddField 플래그, 8
a.AddField issend , 9
응답. a.ReturnSQl
set a=nothing
%>
<%
set a =new SQLString
작성'클래스 객체 생성
a.TableName= message '테이블 이름 설정 message
'a.where= issend =9
'a.order= issend desc
a.SQLType=0 '레코드를 추가할 쿼리 유형 설정
a.AddField incept, ' 2'
a.AddField 보낸 사람, '%3%'
a.AddField 제목, #&now&#
a.AddField 보낸 사람, 5
a.AddField 콘텐츠, 6
a.AddField sendtime , 7
a.AddField 플래그, 8
a.AddField issend , 9
Response.Write a.ReturnSQl
set a=nothing
%>
<%
set a =new SQLString '클래스 객체 생성
a.TableName= message '테이블 이름 설정 메시지
'a.where= issend =9
'a.order= issend desc
a.SQLType=0 '기록을 추가할 쿼리 유형 설정
a.AddField incept, '2'
a.AddField sender , '%3%'
a.AddField title , #&now&#
a.AddField sender , 5
a.AddField content , 6
a.AddField sendtime , 7
a.AddField 플래그, 8
a.AddField issend, 9
Response.Write a.ReturnSQl
세트 a=아무것도 없음
%>