Lo encontré buscando información en línea, pero encontré algunos problemas durante la depuración.
Después de algunas modificaciones, todavía hay algunos problemas, pero se puede utilizar para uso general.
No se consideró el problema del tipo de datos y la diferencia entre SQL Server y el acceso. Lo mejoraré cuando tenga tiempo en el futuro. No sé qué tan eficiente será.
Si alguien lo mejora por favor envíeme una copia.
<%
'Clase que genera cadenas SQL.
'Trabajo original: Anónimo
'Mejora: aloxi
'Correo electrónico:[email protected]
'OICQ:331622229
claseSQLString
'************************************
'Definición variable
'************************************
'sTableName ---- nombre de la tabla
'iSQLType ----tipo de declaración SQL: 0-agregar, 1-actualizar, 2-eliminar, 3-consultar
'sWhere ---- condición
'sOrder ---- método de clasificación
'sSQL ----ValuePrivate
sTableName,iSQLType,sWhere,sOrder,sSQL
'********************************* * ***
'Inicialización/fin de clase
'************************************
Subclase privada_Initialize()
sTableName=""
tipoiSQL=0
sDonde=""
sOrden=""
sSQL=""
End Sub
Private Sub Class_Terminate()
End Sub
'************************************
'propiedad
'************************************
'Establece las propiedades del nombre de la tabla
Propiedad pública Let TableName (valor)
sTableName=valor
Propiedad final
'Establecer condiciones
Propiedad pública alquilada donde (valor)
sDonde=valor
Propiedad final
'Establecer método de clasificación
Orden de alquiler de propiedad pública (valor)
sOrden=valor
Propiedad final
'Establece el tipo de declaración de consultaPropiedad pública
Let SQLType(valor)
iSQLType=valor
seleccione caso iSQLType
caso 0
sSQL="insertar en valores #0 (#1) (#2)"
caso 1
sSQL="actualización #0 conjunto #1=#2"
caso 2
sSQL="eliminar de #0 "
caso 3
sSQL="seleccione #1 de #0 "
finalizar seleccionar
Propiedad final
'************************************
'función
'************************************
'Agregar campo (nombre de campo, valor de campo)
Public Sub AddField(sFieldName,sValue)
seleccione caso iSQLType
caso 0
sSQL=reemplazar(sSQL,"#1",sNombreDeCampo & ",#1")
sSQL=reemplazar(sSQL,"#2","'" & sValue & "',#2")
caso 1
sSQL=reemplazar(sSQL,"#1",sNombreCampo)
sSQL=reemplazar(sSQL,"#2","'" & sValue & "',#1=#2")
caso 3
sSQL=reemplazar(sSQL,"#1",sNombreDeCampo & ",#1")
Finalizar selección
End Sub
'Devolver declaración SQL
Función pública ReturnSQL()
sSQL=reemplazar(sSQL,"#0",sTableName)
seleccione caso iSQLType
caso 0
sSQL=reemplazar(sSQL,",#1","")
sSQL=reemplazar(sSQL,",#2","")
caso 1
sSQL=reemplazar(sSQL,",#1=#2","")
caso 3
sSQL=reemplazar(sSQL,",#1","")
finalizar seleccionar
si sWhere<>"" y iSQLType<>0 entonces
sSQL=sSQL & "dónde" & sDónde
terminar si
si sOrder<>"" y iSQLType<>0 entonces
sSQL=sSQL & "ordenar por" & sOrdenar
terminar si
RetornoSQL=sSQL
Función final
'Borrar declaraciónPublic
Sub Clear()
sTableName=""
tipoiSQL=0
sDonde=""
sOrden=""
sSQL=""
Subtítulo final
Fin de clase
%>
<%
'El siguiente es un ejemplo de llamada. Para problemas de tipo de datos, continúe modificando la definición en la clase anterior. Si tiene alguna pregunta, puede preguntarme.
establecer un =new SQLString 'Crear objeto de clase
a.TableName=" mensaje " 'Establece el nombre de la tabla en mensaje
'a.where="enviar =9"
'a.order="enviar desc"
a.SQLType=0 'Establece el tipo de consulta para agregar registros
a.AddField "incepto", "2"
a.AddField "remitente", "3"
a.AddField "título", "4"
a.AddField "remitente", "5"
a.AddField "contenido", "6"
a.AddField "hora de envío", "7"
a.AddField "bandera", 8
a.AddField "issend", 9
Respuesta.Escribir a.ReturnSQl
establecer a = nada
%>