Sommaire
1. Exemple d'application classique
2. Rôle de chacune des couches
3. Avantages de cette architecture
4. Exemple d'architecture à 3 couches
4.1 Couche données
4.2 Couche métier
4.3 Couche présentation
4.2 Couche métier
Nous allons créer cette couche sous la forme d'une autre dll ActiveX. Tout d'abord le projet Data doit avoir été compilé.
Puis sans fermer le projet, cliquez sur le menu Fichier -> Ajouter un projet, et sélectionnez DLL ActiveX. Renommez le nouveau projet en "Rules".
La couche métier va utiliser la couche données, donc l'activeX "Data" doit être ajouté dans les références du projet.
La couche données contiendra deux classes. La classe clsServices qui nous fournira les comptes de quelqu'un, ainsi que les opérations d'un compte.
Et clsCompte qui nous permettra de lire ou de modifier un compte. Voici le code source de la classe clsServices :
Option Explicit
Function ListeComptes(idProprietaire As Long) As ADODB.Recordset
Dim objData As clsData, sql As String
On Error GoTo fail
sql = "SELECT * FROM tCompte WHERE co_IdProp=" & idProprietaire
Set objData = New clsData Set ListeComptes = objData.CreeRecordset(sql)
Set objData = Nothing Exit Function
fail: Err.Raise Err.Number, Err.Source, Err.Description
End Function
Function ListeOperations(idCompte As Long, dateOperations As Date) As ADODB.Recordset
Dim objData As clsData, sql As String
On Error GoTo fail
sql = "SELECT * FROM tOperation WHERE (op_compteS=" & idCompte & ")"
If IsDate(dateOperations) Then sql = sql & "AND (co_DateCreation=#" & dateOperations & "#)"
Set objData = New clsData Set ListeOperations = objData.CreeRecordset(sql)
Set objData = Nothing Exit Function
fail: Err.Raise Err.Number, Err.Source, Err.Description
End Function |
Ces deux méthodes renvoient un recordset déconnecté. A ce niveau on se connecte à la base de données, mais l'on ne sait pas comment.
Le type de base de données, son emplacement, la manière de se connecter, le mot de passe s'il y en a un, sont gérés dans la couche des données.
[ Précédent ] [ Suivant ]
Ce document issu de http://www.developpez.com est soumis à la licence GNU FDL traduite en français ici.
Permission vous est donnée de distribuer, modifier des copies de cette page tant que cette note apparaît clairement.
|