Las funciones del programa tienen un marco general. De hecho, puede agregar algunas funciones usted mismo, como la conexión inicial de la base de datos. Puede configurar
variables primero y luego seleccionar diferentes tipos de bases de datos a través de INIT ()
<%.
'En caso de error, reanudar siguiente
ClaseConnEx
públicoConnEx
ruta de base de datos pública '---------ruta de la base de datos
public DBtype '---------Tipo de base de datos 1 (Acceso) 2 (SqlServer) 3 (ampliable)
public ConnMethod '--------Método de conexión (DSN, no DSN)
Usuario público
pase publico
Subclase_inicializar
Fin Sub
Sub Inicial()
ConnStr = "Driver={Controlador de Microsoft Access (*.mdb)};dbq="&Server.MapPath("Fecha.mdb")
Establecer ConnEx = Server.Createobject("ADODB.CONNECTION")
ConnEx.Abrir ConnStr
CatchError("Class_Terminate")
Fin Sub
Sub CatchError (Str)
Si se equivoca entonces
Err.Borrar
Clase_Terminar()
Response.Write("¡Se detectó un error, el programa finaliza! En "&Str&"")
Respuesta.Fin()
Terminar si
Fin Sub
'******************************************
'*La búsqueda de la existencia de registros mediante sentencias SQL es propensa a errores'************************************ ** ******
Función HasRecordBySql(Sql)
Llamar a CheckSql(Sql,"R")
Dim Rs,HasR
Establecer Rs = ConnEx.Execute (Sql)
CatchError("HasReordSql")
Si no (Rs.eof o Rs.bof) entonces
TieneR=Falso
Demás
TieneR=Verdadero
Terminar si
Rs.Cerrar
Establecer Rs = Nada
HasRecordBySql = HasR
Función final
'******************************************
'*Buscar si el registro existe por ID'*********************************
Función HasRecordById(StrTableName, IntID )
'ComprobarValor(IntID, 1)
Dim Rs,HasR
Sql = "Seleccione los 1 primeros * de "&StrTableName&" Donde Id = "&IntID
Llamar a CheckSql(Sql,"R")
Establecer Rs = ConnEx.Execute(Sql)
CatchError("HasRecordByID")
Si no (Rs.eof o Rs.bof) entonces
TieneR=Falso
Demás
TieneR=Verdadero
Terminar si
Rs.cerrar
Establecer Rs = Nada
HasRecordById = HasR
Función final
'************************************************
'*Obtener el registro establecido a través de una declaración SQL'****************************************** ** *****
Función GetRsBySql(Sql)
Llamar a CheckSql(Sql,"R")
Rs tenues
Establecer Rs = Server.CreateObject ("Adodb.RecordSet")
Rs.Open Sql,ConnEx,1,1
Establecer GetRsBySql = Rs
Función final
'************************************************ *
'*Obtener el valor de un determinado campo'****************************************** ** ****
Función GetValueBySql (Sql)
Llamar a CheckSql(Sql,"R")
Rs tenues, valor de retorno
Establecer Rs = ConnEx.Execute(Sql)
CatchError("GetValueBySql")
Si no (Rs.Eof o Rs.Bof) entonces
Valor de retorno = Rs(0)
Demás
ReturnValue = "Sin registro"
Terminar si
Rs.Cerrar
Establecer Rs = Nada
GetValueBySql = Valor de retorno
Función final
'============================ Actualizar, Insertar ================= ====
'********************************************* ***
'*Usar SQL para modificar datos'****************************************** **
Función UpdateBySql( Sql )
Llamar a CheckSql(Sql,"w")
ConnEx.Ejecutar(Sql)
CatchError("ActualizarBySql")
UpdateBySql = Verdadero
Función final
'************************************************ *
'*Insertar datos usando sentencias SQL'****************************************** **
Función InsertarPorSql(Sql)
Llamar a CheckSql(Sql,"w")
ConnEx.Ejecutar(Sql)
CatchError("InsertarBySql")
InsertBySql = Verdadero
Función final
'======================Eliminar=======================
'* ** *******************************************
'*Eliminar mediante instrucción SQL'********************************************* ***** *
Función EliminarPorSql(Sql)
Llamar a CheckSql(Sql,"D")
ConnEx.Ejecutar(Sql)
CatchError("DeleteBySql")
EliminarBySql = Verdadero
Función final
'************************************************ *
'*Verifique los permisos de la declaración SQL y detecte los permisos que posee la declaración según el indicador'****************************** ****************
Sub CheckSql (Sql, Bandera)
Dim StrSql,SinCounts,DouCounts,i
StrSql = Lcase(Sql)
SinCounts = 0
DouCounts = 0
Para i = 1 a Len(StrSql)
Si Mid(StrSql,i,1) = "'" Entonces SinCounts = SinCounts + 1
Si Mid(StrSql,i,1) = """" Entonces DouConnts = DouCounts + 1
Siguiente
Si (SinCounts Mod 2) <> 0 O (DouCounts Mod 2) <> 0 O Instr(StrSql,";") > 0 Entonces
Llamar a Class_Terminate()
Response.Write ("¡Error de sintaxis SQL!")
Respuesta.Fin()
Terminar si
Seleccionar indicador de caso
Caso "R", "r":
Si Instr(StrSql,"delete") > 0 O Instr(StrSql,"update") O Instr(StrSql,"drop") > 0 O Instr(StrSql,"insert") > 0 Entonces
Clase_Terminar()
Response.Write("Permisos insuficientes, no hay permiso para realizar operaciones de escritura")
Respuesta.Fin()
Terminar si
Caso "W", "w":
Si Instr(StrSql,"delete") > 0 O Instr(StrSql,"drop") > 0 O Instr(StrSql,"select") > 0 Entonces
Clase_Terminar()
Response.Write("Permisos insuficientes, no hay permiso para realizar la operación de eliminación")
Respuesta.Fin()
Terminar si
Caso "D", "d":
Otro caso:
Response.Write ("¡Error del indicador de función CheckSql!")
Finalizar selección
Fin de
subsubclase_Terminar
Si no está vacío (FriendConn) entonces
FriendConn.Cerrar
Establecer FriendConn = Nada
Error de captura()
Terminar si
Subtítulo final
Fin de clase
%>