Les fonctions du programme ont un cadre général. En fait, vous pouvez ajouter certaines fonctions vous-même, comme la connexion initiale à la base de données. Vous pouvez
d'abord définir des variables puis sélectionner différents types de bases de données via INIT()
<%.
'En cas d'erreur, reprendre ensuite
ClasseConnex
PublicConnex
public DBpath '---------chemin de la base de données
public DBtype '---------Type de base de données 1 (Access) 2 (SqlServer) 3 (extensible)
public ConnMethod '--------Méthode de connexion (DSN, non-DSN)
Utilisateur public
Pass public
Sous-classe_initialize
Fin du sous
-sous-initialisation()
ConnStr = "Driver={Pilote Microsoft Access (*.mdb)};dbq="&Server.MapPath("Date.mdb")
Définir ConnEx = Server.Createobject("ADODB.CONNECTION")
ConnEx.Open ConnStr
CatchError("Class_Terminate")
Fin du
sous-sous CatchError (Str)
Si erreur alors
Err.Effacer
Classe_Terminate()
Response.Write("Erreur détectée, le programme se termine ! À "&Str&"")
Réponse.Fin()
Fin si
Fin du sous-
'******************************************
'*La recherche de l'existence d'enregistrements via des instructions SQL est sujette aux erreurs'********************************** ** ******
Fonction HasRecordBySql (Sql)
Appelez CheckSql(Sql,"R")
Dim Rs,HasR
Définir Rs = ConnEx.Execute( SQL )
CatchError("HasReordSql")
Si non (Rs.eof ou Rs.bof) alors
HasR=Faux
Autre
HasR=Vrai
Fin si
Rs.Fermer
Définir Rs = Rien
HasRecordBySql = HasR
Fin de la fonction
'******************************************
'* Rechercher si l'enregistrement existe par ID' **********************************
Fonction HasRecordById (StrTableName, IntID )
'VérificationValeur(IntID, 1)
Dim Rs,HasR
Sql = "Sélectionnez le top 1 * dans "&StrTableName&" Où Id = "&IntID
Appelez CheckSql(Sql,"R")
Définir Rs = ConnEx.Execute (Sql)
CatchError("HasRecordByID")
Si non (Rs.eof ou Rs.bof) alors
HasR=Faux
Autre
HasR=Vrai
Fin si
Rs.fermer
Définir Rs = Rien
HasRecordById = HasR
Fin de la fonction
'************************************************
'*Obtenir l'enregistrement via une instruction SQL'****************************************** ** *****
Fonction GetRsBySql( SQL )
Appelez CheckSql(Sql,"R")
Faible Rs
Définir Rs = Server.CreateObject("Adodb.RecordSet")
Rs.Open SQL, ConnEx, 1,1
Définir GetRsBySql = Rs
Fin de la fonction
'************************************************ *
'*Obtenir la valeur d'un certain champ'****************************************** ** ****
Fonction GetValueBySql( SQL )
Appelez CheckSql(Sql,"R")
Dim Rs, valeur de retour
Définir Rs = ConnEx.Execute (Sql)
CatchError("GetValueBySql")
Si non (Rs.Eof ou Rs.Bof) alors
Valeur de retour = Rs(0)
Autre
ReturnValue = "Aucun enregistrement"
Fin si
Rs.Fermer
Définir Rs = Rien
GetValueBySql = Valeur de retour
Fin de la fonction
'============================Mise à jour, Insérer================ ====
'********************************************* ***
'*Utiliser SQL pour modifier les données'****************************************** **
Fonction UpdateBySql( SQL )
Appelez CheckSql(Sql,"w")
ConnEx.Execute(Sql)
CatchError("Mise à jourParSql")
UpdateBySql = Vrai
Fin de la fonction
'************************************************ *
'*Insérer des données à l'aide d'instructions SQL'****************************************** **
Fonction InsertBySql(Sql)
Appelez CheckSql(Sql,"w")
ConnEx.Execute(Sql)
CatchError("InsertBySql")
InsertBySql = Vrai
Fin de la fonction
'======================Supprimer========================
'* ** ****************************************
'*Supprimer via une instruction SQL'********************************************* ***** *
Fonction SupprimerBySql(Sql)
Appelez CheckSql(Sql,"D")
ConnEx.Execute(Sql)
CatchError("SupprimerBySql")
SupprimerBySql = Vrai
Fin de la fonction
'************************************************ *
'* Vérifiez les autorisations de l'instruction SQL et détectez les autorisations détenues par l'instruction en fonction de l'indicateur'****************************** **** *************
Sous CheckSql( SQL , Flag )
Dim StrSql, SinCounts, DouCounts, je
StrSql = Lcase(Sql)
Nombre de péchés = 0
DouCounts = 0
Pour i = 1 à Len(StrSql)
Si Mid(StrSql,i,1) = "'" Alors SinCounts = SinCounts + 1
Si Mid(StrSql,i,1) = """" Alors DouConnts = DouCounts + 1
Suivant
Si (SinCounts Mod 2) <> 0 Ou (DouCounts Mod 2) <> 0 Ou Instr(StrSql,";") > 0 Alors
Appelez Class_Terminate()
Response.Write("Erreur de syntaxe SQL !")
Réponse.Fin()
Fin si
Sélectionner un indicateur de cas
Cas "R", "r":
Si Instr(StrSql,"delete") > 0 Ou Instr(StrSql,"update") Ou Instr(StrSql,"drop") > 0 Ou Instr(StrSql,"insert") > 0 Alors
Classe_Terminate()
Response.Write("Autorisations insuffisantes, aucune autorisation pour effectuer des opérations d'écriture")
Réponse.Fin()
Fin si
Cas "W", "w":
Si Instr(StrSql,"delete") > 0 Ou Instr(StrSql,"drop") > 0 Ou Instr(StrSql,"select") > 0 Alors
Classe_Terminate()
Response.Write("Autorisations insuffisantes, aucune autorisation pour effectuer une opération de suppression")
Réponse.Fin()
Fin si
Cas "D", "d":
Autre cas :
Response.Write ("Erreur d'indicateur de fonction CheckSql !")
Fin de la sélection
Fin de la sous-
sous-classe_Terminate
Si ce n'est pas IsEmpty (FriendConn), alors
FriendConn.Fermer
Définir FriendConn = Rien
CatchErreur()
Fin si
Fin du sous-marin
Fin du cours
%>