|
Lorsque l'on aborde ASP,
il est fréquent de recourir à Access
pour apprendre à interfacer convenablement un site web avec une base
de données. Mais très vite, si le site une fois publié connaît un
tant soit peu de succès, Access montre
ses limites, et un SGBD plus fiable s'avère nécessaire. Voyons ici
comment transférer une base Access en
une base SQL Server. Différences
fondamentales
A la différence d'Access, SQL
Server requiert une identification de l'utilisateur, qu'il soit
administrateur des bases de données ou propriétaire de l'une d'entre
elles, ou encore, et ce n'est pas le moindre cas, qu'il en soit
utilisateur, c'est-à-dire qu'il accède aux données contenues au
travers d'une page ASP par exemple. Dans
un contexte DSN / ODBC,
l'appel de la base de données se fera donc par le nom du DSN,
mais assorti d'un nom d'utilisateur assorti d'un mot de passe, ce
couple d'identifiants devant être préalablement déclaré dans les
utilisateurs SQL Server côté serveur
(c'est à l'administrateur NT de le
faire).
Dans le global.asa,
nous aurons donc un appel de ce type :
Sub Application
On_Start
Application("ConnectionString") = "DSN=nomdudsn;User
Id=user;PASSWORD=password"
et, si l'on appelle la connexion à
chaque page, l'on aura alors :
Conn.Open "nomdudsn",
"user", "password"
La seconde différence fondamentale
entre les deux SGBD réside dans le fait que les types de champs ne
portent pas les mêmes noms : un champ mémo
devient ntext, un champ numérique
devient int. Quant à l'équivalent du
champ de type NuméroAuto, il s'agit en
fait d'un champ int, mais avec l'option Compteur
activée. Ne pas oublier, lors de la migration, de cocher cette case
à chaque fois que nécessaire.
Méthodes de
migration
La première étape consiste à créer
sur votre machine un DSN qui vous
permettra d'accéder à votre base SQL Server
en vous identifiant en tant que propriétaire de la base.
Si vous disposez de l'édition Desktop
de SQL Server 7, et si vous disposez au
minimum des droits db_owner
(propriétaire de la base), le plus simple est d'importer des données
Access à partir de l'assistant
d'importation DTS. Pour cela, cliquez sur
votre base et sélectionnez Importer des
données. Sélectionnez le type de données source (Access),
sélectionnez la base contenant les données à importer, puis
identifiez-vous en tant que propriétaire de la base dans la page
suivante, en utilisant l'identification SQL
Server. L'assistant
va vous proposer, table par table et sous forme de liste, de
transformer les données en vue de leur importation. C'est ici le
point le plus important de l'opération ; si la plupart des
paramètres de champs seront reconnues sans difficulté, il convient
de procéder aux vérifications suivantes : 1/
Cocher la case Compteur pour tous les
champs (1 par table) de type NuméroAuto,
et vérifier que la valeur Null est
interdite. 2/ Bien revérifier
que les champs mémo ont été
transformés en champs ntext. Dans le cas
contraire, procéder à cette modification, puis placer tous les
champs ntext en fin de table, à l'aide
d'un simple couper / coller. Vous
pouvez maintenant achever l'importation, un indicateur de progression
s'affichera. Si vous ne disposez
pas de l'édition Deskpro de SQL Server 7,
utilisez l'assistant de migration d'Access 2000,
qui se situe dans Outils / Utilitaires
de bases de données / Assistant de
migration SQL Server. Vérifiez ensuite auprès de votre
hébergeur que les champs compteur ont
bien été paramétrés et que les champs ntext
sont placés à la fin de chaque table. Côté
pages ASP Hormis l'appel de
la connexion qui a été évoqué plus haut, il convient de noter
qu'une modification importante est à procéder dans vos pages ASP.
Les champs ntext sont, là aussi, à
afficher en dernier. Ce qui signifie que, dans un exemple où, après
un champ ntext, vous devez afficher par
exemple une date ou un champ text normal,
il convient de stocker ceux-ci dans des variables et d'afficher la
variable et non le contenu du champ : signature
= rs("Signature_Article")
'ensuite on affiche tout ce qui peut s'afficher, jusqu'au champ ntext
inclus
= signature 'au lieu de =rs("Signature_Article") Avec
ces quelques instructions, vous disposez des informations de base,
mais indispensables, nécessaires à un passage facile d'une
plate-forme limitée à un SGBD réellement performant.
|