Trucs et Astuces wHo-et-Be

cliquez pour 
ouvrir le menu
Développement Web > ASP ASP
Départ - Base de Données - Fichiers Texte - Envoyer un mail - Formulaires - Paramètres

Accès à une base de données de type ACCESS installée sur votre serveur :
Il faut d'abord déclarer l'accès à la base de données :
La ligne avec le password n'est utile que si vous avez protégé votre Base de données
(c'est pas dur mais quand même utile)
<%
DBPath = Server.MapPath("/repertoire/base.mdb")
DBPwd = "password"
DBCnx = "driver={Microsoft Access Driver (*.mdb)};
dbq=" & DBPath & ";pwd=" & DBPwd
%>
Je vous conseille de placer les lignes ci-dessus dans un fichier "db.asp" par exemple et d'inclure dans vos pages ce fichier contenant la déclaration d'accès à vos données.
Comme ça, vous n'avez pas à répéter tout le temps ces lignes :
<!--#include virtual="/répertoire/db.asp" -->
J'ai corrigé la ligne çi-dessus, car l'extension était .inc (comme include), mais si on tape directement l'adresse du fichier, l'internaute peut télécharger le fichier puisqu'il n'est pas interprété par le serveur.... et du coup, voir ou est située votre base, comment elle se nomme... et son mot de passe ! Alors que si vous mettez une extension .asp, c'est le serveur qui l'interprète et ne montre rien.

Vous aurez aussi certainement besoin des déclarations de variables globales pour les requètes à la base de données (fichier disponible ici) :
<!--#include virtual="/répertoire/adovbs.inc"-->

Enfin, pour ouvrir votre base :
<%
Set DB = Server.CreateObject("ADODB.Connection")
DB.Open DBcnx
Set RS = Server.CreateObject("ADODB.Recordset")
RS.open "Select * from TABLE", DB, adopendynamic,
adLockPessimistic, adCmdText
...
RS.close
DB.close
%>
DB est un objet Base de Données et RS est un objet Recordset (requète)

Pour afficher le contenu d'un champ de la base :
<%
response.write RS("champ")
%>

Quand vous faites une requète, si vous avez une erreur du type :
Microsoft OLE DB Provider for ODBC Drivers erreur '80040e10'
[Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 1 attendu.
/default.asp, ligne 11
C'est qu'à la ligne 11, vous avez avez fait une requète (select * ...) en passant un mauvais nom de champ.

Quand vous faites une requète, si vous avez une erreur du type :
Microsoft OLE DB Provider for ODBC Drivers erreur '80040e10'
[Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 1 attendu.
/default.asp, ligne 11
C'est qu'à la ligne 11, vous avez avez fait une requète (select * ...) en passant un mauvais nom de champ.

Maintenant les fonctions de déplacement :
Début du fichier Fin du fichier
RS.movefirst RS.movelast
Enregistrement suivant Enregistrement précédent
RS.movenext RS.moveprevious

Maintenant des algorithmes de base :
Test de fin de fichier :
if RS.eof then
   response.write " rien dans la table "
else
   ...
end if
Balayage :
while not RS.eof
   response.write " champ = " & RS("champ")
   RS.movenext
wend
Ajout :
RS.addnew
RS("champ1")="blabla"
RS("champ2")=21
RS.update
Modification :
RS("champ1")="toto"
RS.update
Suppression :
RS.delete
(et éventuellement RS.movenext pour une boucle)

Pensez à fermer vos Recordet et Bases à la fin.
...
RS.close
DB.close

  visites   Yahoo Me!ICQ Me!Skype Me!MSN Live Messenger Me! Accueil