Devant la demande importante sur la création de composant
script ASP pour Windows, il a bien fallu que j'agisse.
Ne voulant décevoir personne, j'ai pris le parti de
concevoir et de développer un Windows Script Component
dont voici les objectifs, les contraintes, les éléments,
et bien sûr les explications.
Je vous conseille par conséquent de jetez un oeil, si
ce n'est déjà fait, au tutoriel
sur comment compacter un base de données Access).
Vous pouvez télécharger le composant LENNE.Compactorici.
Attention on est pas
là pour rigoler, accrocher vos ceintures, c'est long
(Vous trouverez des numéros correspondants aux différents
pages tout au long du document).
Les objectifs : Créer un composant capable de
compacter une base de donnée Access.
Les contraintes : Ce composant doit être utilisable
dans des pages ASP, sans nécessiter un codage important et
offrant le plus grand nombre d'options possible.
Les outils :Windows Script Component Wizard (téléchargeable
ici), Windows 2000 Server et enfin le serveur Web IIS.
Maintenant que je sais ce que je veux faire, comment faire
?
Je vais pour cela créer un composant script réutilisable,
pour compacter une base de donnée Access.
Il me faut maintenant choisir le nom de ce composant. Ce sera
LENNE.Compactor . ;-)
Définissons quelles vont être les propriétés
et les méthodes de notre composant : (il nous sera toujours
possible d'en ajouter ou de les modifier par la suite)
Backup
: Retourne et Fixe la valeur booléenne de la sauvegarde
de la base de données Access à compacter
avec l'extension _AnnéeMoisJour.bak
. Par
défaut sa valeur est False.
UidBase
: Fixe la valeur de l'identifiant d'accès à
la base de données Access à compacter.
syntaxe
:
Set objCompactor = Server.CreateObject("LENNE.Compactor") objCompactor.UidBase
= "My_User_Id"
PwdBase
: Fixe la valeur du mot de passe d'accès à
la base de données Access à compacter.
syntaxe
:
Set objCompactor = Server.CreateObject("LENNE.Compactor") objCompactor.PwdBase
= "My_Password"
Engine
: Retourne et Fixe le type de la base de données
compactée. Correspond à Engine Type [
3 (Access 2), 4 (Access 97), 5 (Access 2000) ]. Par
défaut la valeur est 5 (Access 2000).
PathCompact
: Retourne et Fixe le chemin du répertoire où
se situe le travail de compactage de la base de données
Access. L'espace
disponible dans ce répertoire doit être au
moins égal à la taille de la base de données
Access à compacter. Par
défaut la valeur est celle de PathBase.
Compact
"MapPathDatabase"
:
Compacte la base de données Access à compacter
indiquée en paramètre. Utilise
l'ensemble des paramètres fixés dans les
propriétés, à l'exception de la base
de données à compacter. Le
paramètre MapPathDatabase
peut-être nul.
syntaxe
:
Set objCompactor = Server.CreateObject("LENNE.Compactor") objGenXML.Compact
Server.MapPath("My_Database.mdb")
Les
syntaxes :
Voici
la syntaxe complète pour le compactage d'une base
de données Access, à vous bien sûr de remplir
les champs en rouge.
Et
maintenant voici plus simple ;-). La base de données
à compacter est une base Access non protégée.
La base de données compactée est une base
de données Access 2000, non protégée,
non cryptée. Nous ne faisons pas de sauvegarde
de la base de données à compacter. L'espace
disque est suffisant dans le répertoire de la base
à compacter (le poids de la base à compacter).
Set
objCompactor = Server.CreateObject("LENNE.Compactor")
objGenXML.Compact
Server.MapPath("My_Database.mdb")
Set objCompactor = Nothing
Voilà qui est fait. En tout cas pour la première
partie : nous avons défini les propriétés
et les métodes de notre objet.
Maintenant il n'y a plus qu'à lancer le programme Windows
Script Component Wizard (téléchargeable
ici).
A l'ouverture du premier écran.
Vous pouvez mettre ce que vous voulez dans les champs Name,
Version, Filemame et Location.
Le fichier avec l'extension ".wsc" sera crée
à l'emplacement "Location" avec le nom du
fichier "Filename". Attention Dans le
Prog Id mettez le nom de l'objet que vous voulez créer.
Ici LENNE.Compactor Vous aurez sans doute du mal à changer le numéro
de version, mais nous pourrons le faire plus tard.
Define
Windows Script Component
Name
:
Filename :
Prog Id :
Version :
Location :
Au dieuxième
écran, on vous demande de spécifier le
language de script. Vous avez le choix entre VBScript ou
JScript.
Cochez la case "Do you want special implements support
?" et choissisez le bouton radio "Support
Active Server Pages".
N'hesitez pas à cocher "Error Checking"
et "Debugging".
Au troisième
écran, nous devons maintenant rentrer les propriétés
définies précédemment (vous pourrez
en ajouter par la suite).
Nous voici au quatrième et dernier écran.
Il nous faut rentrer maintenant les méthodes de notre
objet. Attention Les paramètres
des méthodes doivent être séparés
par de virgules.
Si la méthode n'a aucun paramètre, laissez le
champ vide.
Name
Parameters
Compact
Compactor_NameBase
Il existe un cinqième écran qui vous demande
le nom de vos événements. Je passerai ici sans
plus d'explication.
Le sixième écran vous donne les infos sur
le composant que vous être en train de créer. Validez,
et voyons un peu à quoi ressemble le fichier "Compactor.wsc".
Lisez ce fichier avec les commentaires explicatifs que j'y ai
mis.
J'ai modifié ce fichier en y ajoutant l'extension ".xml"
pour une meilleure lisibilité (Cliquez
ici).
Vous pouvez télécharger le composant LENNE.Compactorici.
Attention
Les commentaires ne sont pas autorisés dans le fichier
final. Dans le cas contraire, une erreur sera générée.
A présent, il vous reste à cliquer le bouton
droit de votre souris sur le fichier Compactor.wsc et inscrire
le composant.
Bien sûr si vous avez des questions, si certains points
ne vous parraissent pas très clair, vous voulez apporter
une amélioration, ou pour me passer le bonjour, envoyer
moi un message à ludovic@lenne.org
N.B. : Je
vous prépare une grosse surprise. Un gros composant script,
de création de fichier XML à partir de base de
données, avec son propre language.
Ce composant vous intéresse demandez le ici
(plus vous serez nombreux plus je serai motivé ;-)