ネットで情報を検索して見つけたのですが、デバッグ中にいくつか問題が見つかりました。
若干の改造を加えた後、まだ問題はありますが、一般的に使用できます。
データ型の問題と SQL Server とアクセスの違いについては考慮されていませんでした。今後時間があれば改善します。
誰かがそれを改善したら、コピーを送ってください。
<%
'SQL文字列を生成するクラス。
『原作:アノニマス』
'改善: アロキシ
'電子メール:[email protected]
'OICQ:331622229
クラスSQL文字列
「************************************
'変数の定義
「************************************
'sTableName ---- テーブル名
'iSQLType ----SQL ステートメント タイプ: 0-追加、1-更新、2-削除、3-クエリ
の場所 ---- 条件
'sOrder ---- ソート方法
'sSQL ----ValuePrivate
sTableName,iSQLType,sWhere,sOrder,sSQL
'******************************** * ***
'クラスの初期化/終了
'************************************
プライベートサブクラス_Initialize()
sテーブル名=""
iSQLタイプ=0
sWhere=""
s注文=""
sSQL=""
End Sub
Private Sub Class_Terminate()
End Sub
'************************************
'財産
「************************************
'テーブル名のプロパティを設定します
Public プロパティ Let TableName(value)
sテーブル名=値
終了プロパティ
'条件を設定します
Public プロパティ Let Where(value)
sWhere=値
終了プロパティ
'ソート方法を設定する
Public プロパティ Let Order(value)
sOrder=値
終了プロパティ
'クエリステートメントのタイプを設定するパブリック
プロパティ Let SQLType(value)
iSQLType=値
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",sフィールド名 & ",#1")
sSQL=replace(sSQL,"#2","'" & sValue & "',#2")
ケース1
sSQL=replace(sSQL,"#1",sフィールド名)
sSQL=replace(sSQL,"#2","'" & sValue & "',#1=#2")
ケース3
sSQL=replace(sSQL,"#1",sフィールド名 & ",#1")
エンドセレクト
End Sub
'Return SQL ステートメント
パブリック関数 ReturnSQL()
sSQL=replace(sSQL,"#0",sテーブル名)
iSQLType のケースを選択してください
ケース0
sSQL=replace(sSQL,",#1","")
sSQL=replace(sSQL,",#2","")
ケース1
sSQL=replace(sSQL,",#1=#2","")
ケース3
sSQL=replace(sSQL,",#1","")
終了選択
sWhere<>"" および iSQLType<>0 の場合
sSQL=sSQL & " where " & sWhere
終了する場合
sOrder<>"" かつ iSQLType<>0 の場合
sSQL=sSQL & " 並べ替え" & sOrder
終了する場合
ReturnSQL=sSQL
End Function
'Clear ステートメントPublic
Sub Clear()
sテーブル名=""
iSQLタイプ=0
sWhere=""
s注文=""
sSQL=""
エンドサブ
終了クラス
%>
<%
' 以下は呼び出しの例です。データ型の問題については、引き続き上記のクラスの定義を変更してください。ご質問がある場合は、私に質問してください。
set a =new SQLString 'クラスオブジェクトの作成
a.TableName=" message " 'テーブル名を message に設定します
'a.where= issend =9"
'a.order=" 説明を送信します"
a.SQLType=0 'レコードを追加するクエリの種類を設定します
a.AddField "開始"、"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=何も設定しない
%>