Designed by Derf !
58 en ligne   Boutique | Sites | Bar | Forum | PhpBB | Actu | Glossaire | Codes | Tips | Liens | Livres | Lettre  


 Recherche

 NewsLetter






   

Connexions facilitées (ASP)

Un include pour vous simplifier la vie





Langage utilisé :

Voilà maintenant un moment que je travaille avec l'ASP, et qu'à chaque fois j'écris le même code pour gérer mes bases de données. C'est rébarbatif, et c'est aussi une belle perte de temps.
La solution ?? Elle existe, elle est simple et vous l'utilisez à chaque fois que vous codez en ASP. C'est le VBScript, qui permet de créer des fonctions et des procédures.

Voilà le principe : Vous créez un fichier (par exemple fonctions.asp) qui contiendra différentes fonctions et méthodes pour la gestion des bases de données. Ensuite, il suffit de mettre ce fichier en include à chaque fois que vous en avez besoin.

Je vous montre un exemple (c'est le fichier que j'utilise moi-même).
<%
' ****************************************************************************
'               Script réutilisable permettant de simplifier et d'exporter
'    au maximum les connexions au bases de données. Permet l'ouverture et 
'      la fermeture d'une connexion, la création, la destruction d'un recordset, 
'        la création d'une liste déroulante, l'envoi d'email avec CDONTS, etc...
' ****************************************************************************

' ****************************************************************************
' Manipulation de la base de données

' ****************************************************************************


' Déclarations des variables utilisées tout au long du script :

Dim oConn   ' object connexion


' Connexion à la base :

Sub Connexion()
   sConn = "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Application("maBase")
   Set oConn = Server.CreateObject("ADODB.Connection")
   oConn.Open sConn
End Sub


' Execution d'une requête sans attendre de résultat (requêtes d'insertion, de mise à jour, ...)

Sub Execution(sReq)
   If sreq <> "" then
      oConn.Execute(sReq)
   else
      response.write("<b>Erreur E001 : Exécution d'une requête</b><br>")
      response.write("Le paramètre envoyé est vide."<br>")
   end if
End Sub


' Vérification qu'un recordSet n'est pas vide

Function estVide(ByRef rstReq)
   If rstReq.eof OR rstReq.bof then
      estVide = true
   else
      rstreq.movefirst
      estVide = false
   end if
end function


' Ouverture d'un recordset pour le mode page a page :

Sub Ouverture(sReq, ByRef rstReq, nb)
   Set rstReq = Server.CreateObject("ADODB.RecordSet")
   If nb <> "" And nb <> "0" then
      rstReq.CursorLocation = 3
      rstReq.PageSize = CInt(nb)
   end if
   rstReq.Open sReq, oConn, 3, 3
End Sub


' Remplissage d'une zone de liste avec un recordset :

Sub CreeSelect(ByRef rstReq, iVal1, iVal2)
   If Not estVide(rstReq) Then
      Do Until rstReq.Eof
         response.write("<option value='"&rstReq(iVal1)&"'>")
         response.write(rstReq(iVal2))
         response.write("</option>")
         rstReq.MoveNext
      Loop
   Else
      response.write("<option value='NULL'>Aucune entrée</option>")
   End If
End Sub


' Fermer un recordset :

Sub Fermeture(ByRef rstReq)
   if isObject(rstReq) then
      rstReq.Close
      Set rstReq = Nothing
   else
      response.write("<b>Erreur F001 : Fermeture d'un RecordSet</b><br>")
      response.write("Le paramètre envoyé à la fonction de fermeture n'esiste pas ou n'est pas un object.<br>")
   End If
End Sub


' Envoyer un e-mail

sub envoiMail(paramExpediteur, paramDestinataire, paramSujet, paramCorps, paramTypeMail)
   Set objCDOMail = Server.CreateObject("CDONTS.NewMail")
      
                ' Renseignement des propriétés
   objCDOMail.From = paramExpediteur
   objCDOMail.To = paramDestinataire
   objCDOMail.Subject = paramSujet
   objCDOMail.Importance = 1 '(0=Low, 1=Normal, 2=High)
   objCDOMail.BodyFormat = paramTypeMail '(HTML or TEXT format)
   if paramTypeMail = 0 then
      objCDOMail.MailFormat = 0 '(Mime format)
   end if

                ' Corps du message
   objCDOMail.Body = paramCorps   
   
                ' Send the message!
   objCDOMail.Send
   Set objCDOMail = Nothing
end sub


' Déconnexion :

Sub Deconnexion()
   oConn.Close
   Set oConn = Nothing
End Sub
%>

Bon, c'est pas encore le top. Faudrait rajouter la gestion des erreurs, un mode d'emploi(?) et d'autres fonctions utiles.

Il suffit juste d'initialiser dans le global.asa la variable d'application "mabase" et c'est bon, ça marche partout.


UTILISATION :

Ben c'est facile. On met le fichier en include et après, on appelle les méthodes comme ceci :

<!-- #include file="fonctions.asp"--> 
<%
Dim maRequete, monRecordSet

maRequete = "SELECT * FROM maTable"

Ouverture maRequete, monRecordSet, 0  ' le 0 c pour afficher tous les elt sans page a page

%>


<!-- code html de la page -->

<% CreeSelect monRecordSet, "champ_Valeur", "champ_Intitule" %>

<!-- code html -->

<%
Fermeture(monRecordSet)

Deconnexion
%>


Voilà, j'espère que ça vous sera utile, et n'hésitez pas à me faire parvenir vos modifications et vos nouvelles idées !!

guitoux1@caramail.com

P.S. : J'ai aussi une gestion des variables de type tableau, mais bon, c'est pas encore assez indépendant pour être utilisé partout. Faut que je travaille ca...

Guitoux1 le 22/09/2003 (26 248 hits)
Didier Testez gratuitement la plateforme web de Windows Server 2008 !
Gagnez un voyage aux Etats-Unis pour la MS Project Conference !
Au fil des news  
CSharp - Sérialisation XML de vos objets
Magazines - Le n°121 de Programmez est disponible
Adobe - Adobe annonce MAX 2009 !
Outils - WhoIs
[MAJ] Dreamweaver MX + Php + MySql - Les formulaires - partie 3
Mise à jour du code, par DB 77, affichage du code erreur, dans la page erreur.php, traduction des ...
PHP - News avec photo - Système de gestion - affichage
Gestion - Administration - Affichage d'une "News", "Actualité", "Info", ... avec : - mise en forme ...
Outils - Crypt
Dreamweaver Php Mysql - Région répétée imbriquée
Je rebondis, sur un post du forum, pour vous montrer comment obtenir grâce à l'extension Simulated ...
Magazines - Le n° 120 de Programmez est disponible
Gérer les bases de contenu SharePoint - Gérer la croissance du volume des données
Dans le cadre de la gestion quotidienne de ferme SharePoint, il existe une partie qu'il faut ...
PHP - Le Coach PHP sur Visual Studio
.NET - Ecrire une application .NET utilisant MySQL
PHP - Utilisation de PHP dans le monde Microsoft
Magazines - Le n° 119 de Programmez est disponible
Adobe - Adobe annonce Photoshop Marketplace
[MAJ] Tutoriel AJAX simple - En avant vers le WEB2.0
Mis à jour le 20/04/2009
Captcha «maison» sans extension - Et en plus, c'est gratuit ;)
Un ami m'a demandé de l'aide ce matin pour insérer un captcha dans un formulaire pour son site ...
Dreamweaver CS4 - Photoshop CS4 - Alliance parfaite pour la gestion des images
Pour changer un peu des pages de code, je vous propose de voir ensemble, la fonctionnalité très ...
JavaScript - Calcul automatique d'une facture
Amélioration du Search MOSS: Manipulation XSL - Utilisation du XSL dans l'affichage des résultats
Parmi tous les articles sur l'amélioration du moteur de recherche de Microsoft Office SharePoint ...
Outils - Editeur d'icônes IcoFX
Magazines - Le n°118 de Programmez est disponible
JavaScript - Imprimer une autre page que celle en cours
CSS - div pour imiter frame (Bandeau/Menu FIXES)
[MAJ] [PHP] Un calendrier très complet -
ajout des événements au calendrier
PowerShell - Winforms pour l'aide des commandes GET PowerShell
Adobe - Adobe Photoshop Lightroom 2 est offert ....
Amélioration du Search MOSS: synonyme et Best Bet - La gestion des synonymes dans MOSS Search
Le moteur de recherche de MOSS permet la configuration d'une liste de synonymes. Nous verrons donc ...
AJAX - récup champs formulaires pour POST en AJAX
PowerShell - Un windows Forms pour SharePoint en PowerShell
Sondage associatif (compatibilité) - Qui va bien avec qui ?
Cette fois, c'est un petit sondage que je vous propose. Il pourra bien sûr être adaptée à vos ...
ASP - Hashage MD5 (cryptage irréversible)
Adobe - 80% de réduction sur les versions Adobe Creative
CSharp - Interroger un serveur Whois
CSharp - Equivalent de la fonction PHP htmlentities()
CSharp - Somme de contrôle CRC32
Magazines - Le n°117 de Programmez est disponible
Hebergement - Hébergement ASP et ASP.Net
MOSS - Mon Profil - Personnalisation des profils utilisateurs de MOSS
La gestion des profils utilisateurs de SharePoint fait partie des fonctionnalités de base de ...
Dreamweaver CS3 + Php + Mysql - Le Jeu d'Enregistrements - Les fondamentaux Part-3
La 3ème partie des fondamentaux, traitera essentiellement du jeu d'enregistrements ou Recordset. ...
Tutorial : HTML | Scripting | ASP-PHP | ASP.net | SQL Server | XML
Sharepoint | XAML | Pocket | Dreamweaver | VML | Divers
  Scripts : Scripting | ASP-PHP | ASP.net | Divers
  Boutique | Annuaire | Bannières | Météo | Tribune | Partenariats
v3b © Didier 2003   
 

Corpo Sciences de Reims Partitions gratuites Carte, météo, annonces
 CodePPC MVP DotNet Project Codes Sources Wygwam The Inquirer FR ASP-magazine El Roubio TechNet Groupes Utilisateurs Microsoft