Ich habe es gefunden, indem ich online nach Informationen gesucht habe, aber beim Debuggen habe ich einige Probleme festgestellt.
Nach einigen Modifikationen gibt es immer noch einige Probleme, aber es kann für den allgemeinen Gebrauch verwendet werden.
Das Problem des Datentyps und der Unterschied zwischen SQL Server und Access wurden nicht berücksichtigt. Ich werde es in Zukunft verbessern, da ich nicht weiß, wie effizient es sein wird.
Wenn jemand es verbessert, senden Sie mir bitte eine Kopie.
<%
'Klasse, die SQL-Strings generiert.
„Originalwerk: Anonym
„Verbesserung: Aloxy
„E-Mail:[email protected]
'OICQ:331622229
classSQLString
'***********************************
'Variablendefinition
'***********************************
'sTableName ---- Tabellenname
'iSQLType ----SQL-Anweisungstyp: 0-add, 1-update, 2-delete, 3-query
'sWhere ---- Bedingung
'sOrder ---- Sortiermethode
'sSQL ----ValuePrivate
sTableName,iSQLType,sWhere,sOrder,sSQL
'*********************************** * ***
'Klasseninitialisierung/-ende
'***********************************
Private Sub Class_Initialize()
sTableName=""
iSQLType=0
sWhere=""
sOrder=""
sSQL=""
End Sub
Private Sub Class_Terminate()
End Sub
'****************************************
'Eigentum
'***********************************
'Legen Sie die Eigenschaften des Tabellennamens fest
Öffentliche Eigenschaft Let TableName(value)
sTableName=Wert
End-Eigenschaft
„Bedingungen festlegen.“
Öffentliches Eigentum, vermietet wo (Wert)
sWhere=Wert
End-Eigenschaft
'Sortiermethode festlegen
Vermietordnung für öffentliches Eigentum (Wert)
sOrder=Wert
End-Eigenschaft
'Legen Sie den Typ der Abfrageanweisung fest. Öffentliche
Eigenschaft Let SQLType(value)
iSQLType=Wert
Wählen Sie den Fall iSQLType aus
Fall 0
sSQL="in #0 (#1) Werte (#2) einfügen"
Fall 1
sSQL="update #0 set #1=#2"
Fall 2
sSQL="löschen von #0 "
Fall 3
sSQL="Wähle #1 aus #0 aus "
Ende auswählen
End-Eigenschaft
'***********************************
'Funktion
'***********************************
'Feld hinzufügen (Feldname, Feldwert)
Public Sub AddField(sFieldName,sValue)
Wählen Sie den Fall iSQLType aus
Fall 0
sSQL=replace(sSQL,"#1",sFieldName & ",#1")
sSQL=replace(sSQL,"#2","'" & sValue & "',#2")
Fall 1
sSQL=replace(sSQL,"#1",sFieldName)
sSQL=replace(sSQL,"#2","'" & sValue & "',#1=#2")
Fall 3
sSQL=replace(sSQL,"#1",sFieldName & ",#1")
Endauswahl
End Sub
'SQL-Anweisung zurückgeben
Öffentliche Funktion ReturnSQL()
sSQL=replace(sSQL,"#0",sTableName)
Wählen Sie den Fall iSQLType aus
Fall 0
sSQL=replace(sSQL,",#1","")
sSQL=replace(sSQL,",#2","")
Fall 1
sSQL=replace(sSQL,",#1=#2","")
Fall 3
sSQL=replace(sSQL,",#1","")
Ende Auswählen
wenn sWhere<>"" und iSQLType<>0 dann
sSQL=sSQL & " where " & sWhere
Ende wenn
wenn sOrder<>"" und iSQLType<>0 dann
sSQL=sSQL & " order by " & sOrder
Ende wenn
ReturnSQL=sSQL
Endfunktion
'Clear StatementPublic
Sub Clear()
sTableName=""
iSQLType=0
sWhere=""
sOrder=""
sSQL=""
Sub beenden
Unterricht beenden
%>
<%
„Das Folgende ist ein Beispiel für einen Aufruf. Bitte ändern Sie die Definition in der obigen Klasse weiter. Wenn Sie Fragen haben, können Sie diese an mich wenden.
set a =new SQLString 'Klassenobjekt erstellen
a.TableName=" message " 'Setzen Sie den Tabellennamen auf message
'a.where=" issend =9"
'a.order=" issend desc"
a.SQLType=0 'Legen Sie den Abfragetyp fest, um Datensätze hinzuzufügen
a.AddField „incept“, „2“
a.AddField „Absender“, „3“
a.AddField „Titel“, „4“
a.AddField „Absender“, „5“
a.AddField „Inhalt“, „6“
a.AddField „sendezeit“, „7“
a.AddField „Flagge“, 8
a.AddField „issend“, 9
Response.Write a.ReturnSQl
setze a=nichts
%>