| Support et Assistance technique. |
|
| | |
| |
[Access]
|
| |
Compacter-une-base-de-donnees-mdb-Access-avec-ASP-VBScript-
| | |
| |
Compacter une base
de données (.mdb) Access avec ASP (VBScript)
JRO MDAC 2.1
requis (par défaut dans Windows
98/NT/2000)
|
' Création de l'objet
JetEngine Set ObjEngine =
Server.CreateObject("JRO.JetEngine")
'
Définition de la table à compacter strCompactDataBaseSource =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MyPath\MyDb.mdb;User
ID=userName;Password=userPassword;" |
Attention la base compactée doit avoir un nom
différent de la base d'origine, et ce nom ne doit pas exister. Les
valeurs des utilisateurs et mots de passe sont optionnels.
|
' Définition de la table
compactée strCompactDataBaseDestination =
"Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Engine Type=5;Jet
OLEDB:Encrypt Database=True;Data Source=MyPath\MyDb_compact.mdb;User
ID=userName;Password=userPassword" |
Les
valeurs des utilisateurs et mots de passes sont
optionnelles.
Engine Type permet
de définir le format de la base compactée. Cette valeur est optionnelle.
Par défaut la base sera convertie au format MSAccess 2000. Attention le
format ne peut être qu'équivalent ou supérieure à la base
d'origine. Voici les valeurs possibles pour Engine Type : Jet10 = 1 Jet11 = 2 Jet20
= 3 (Access 2) Jet3x = 4 (Access 97) Jet4x = 5 (Access
2000)
Encrypt Database permet de
définir si la base compactée doit être codée ou non (valeur boléenne
True/False). Cette valeur est optionnelle. Par défaut la valeur sera celle
de la base d'origine.
|
' Compactage de la
base de données ObjEngine.CompactDatabase
strCompactDataBaseSource, strCompactDataBaseDestination
' Destruction de l'objet
JetEngine Set ObjEngine=Nothing |
Il ne vous
reste plus qu'a remplacer l'ancienne base par la nouvelle.
Voici
maintenant le code complet pour cette opération. Attention la base de donnée ne doit pas être
en lecture seule
|
|
' © Copyright Ludovic Lenne
- 2001
'Les champs en bleus sont à remplacer
par vos données.
' Définition de la base à compacter nameBaseSource
= "My_Db.mdb" pathBaseSource =
"My_Path\" uidBaseSource =
"User" pwdBaseSource = "Password" pathDataBaseSource = pathBaseSource
& nameBaseSource
' Définition de la base
compactée temporaire nameBaseDestination = "MyDb_temp.mdb" pathBaseDestination
= "My_Same_or_Other_Path\" uidBaseDestination =
"Same_or_New_User" pwdBaseDestination = "Same_or_New_Password" pathDataBaseDestination
= pathBaseDestination & nameBaseDestination
' Définition des valeurs du compactage strProvider
= "Provider=Microsoft.Jet.OLEDB.4.0;" strEngine = "Jet OLEDB:Engine
Type=4;" strEncrypt = "Jet OLEDB:Encrypt
Database=False;"
strUidBaseSource = "User ID=" & uidBaseSource & ";" strPwdBaseSource = "Password=" & pwdBaseSource &
";"
strUidBaseDestination = "User ID=" & uidBaseDestination &
";" strPwdBaseDestination
= "Password="
& pwdBaseDestination
& ";"
strDataBaseSource = "Data Source=" &
pathDataBaseSource & ";" strCompactDataBaseSource = strProvider
& strDataBaseSource
strDataBaseDestination = "Data Source="
& pathDataBaseDestination & ";" strCompactDataBaseDestination =
strProvider & strEngine & strEncrypt &
strDataBaseDestination
' Création d'un objet
FileSystemObject Set ObjFileSystem =
Server.CreateObject("Scripting.FileSystemObject")
' Vérification de l'existence de la base à
compacter If (ObjFileSystem.FileExists(pathDataBaseSource))
Then
' Vérifie que la base
temporaire n'existe pas If
(ObjFileSystem.FileExists(pathDataBaseDestination)) Then 'Si elle existe la base
temporaire est effacée ObjFileSystem.DeleteFile
pathDataBaseDestination End If
' Création de l'objet
JetEngine Set ObjEngine =
Server.CreateObject("JRO.JetEngine") ' Compactage de la base de
données ObjEngine.CompactDatabase
strCompactDataBaseSource, strCompactDataBaseDestination ' Destruction de l'objet
JetEngine Set ObjEngine =
Nothing
' Remplacement de
l'ancienne base par la base compactée
temporaire ObjFileSystem.CopyFile
pathDataBaseDestination,pathDataBaseSource
,True ' Effacement de la base
compactée temporaire ObjFileSystem.DeleteFile
pathDataBaseDestination
End If
'
Destruction de l'objet FileSystemObject Set
ObjFileSystem = Nothing
|
|
|
 |
|