|
1
. INTRODUCTION
 |
Pour communiquer avec une base de donnée, nous devons utiliser en ASP
les ActiveX Data Objects (ADO).
Le
recordset (jeu d'enregistrement) est certainement l'objet ADO le plus
utilisé, puiqu'il contient l'ensemble des données extraites
de nos sources (base de données, XML,...), celui-ci contient
une collection fields qui contient à son tour un objet field pour
chaque champ ou colonne du jeu d'enregistrement.
|
Il permet de :
- Lire
les informations contenues dans une base de données
- Insérer
des informations dans celles-ci
- Mettre
à jour des informations
- En
supprimer.
|
|
Propriétés
de l'objet field
|
| Value |
Contient
les données issues de notre source de données |
| Name |
Contient
le nom de la colonne à laquelle est associée l'objet |
| Type |
Type
de données contenues dans la cellule (chaîne de caractères,
date, integer...) |
| Precision |
Correspond
au nombre maximal pouvant être utilisé par des valeurs
numériques |
| NumericScale |
Nombre
de décimales des valeurs numériques |
| DefinedSize |
Taille
maximale exprimée en octet, que peut contenir la cellule |
| Actualsize |
Taille
verritable des données actuellement contenues dans
la cellule |
exemple : pour afficher la taille actuelle de l'objet field rangée
1 colonne 1 nous devons nous positionner sur la premiere instance
<%
RS_liste.MoveFirst
Response.write( RS_liste.fields("colonne 1").Actualsize)
%>
|
|
Lors de l'ouverture d'un recordset, il est possible de passer des paramètres
à celui-ci :
ObjetRecordset.Open source, ActiveConnection, CursorType, Locktype,
Options
|
Paramètres
à passer en ouvrant le recordset
|
| Source |
Source
de données, cela peut être le nom d'une table d'une base de données,
une procédure stockée... |
| ActiveConnection |
Connexion
à utiliser pour le recordset. |
| CursorType |
Type
de curseur à utiliser. (cf CursorType
). |
| LockType |
Type
de verrous (cf Locktype ). |
| Options |
Indique
au fournisseur l'argument source : c.a.d s'il s'agit d'une table ou
d'une chaîne de texte |
2.1
Types de curseurs
|
Curseurs
|
| Statique
(static, adOpenStatic ) |
Les
curseurs statiques contiennent une copie statique du jeu d'enregistrement.
Toute modification sur la base de donnée ne sera pas visible
sur le recordset
Le déplacement dans le recordset se fait alors en avant et
en arrière |
| Forward-only
(forwardonly, adOpenForwardOnly ). |
C'est
le curseur par default, identique au curseur statique, à la
différence que le déplacement dans le recordset ne se
fait que vers l'avant. |
| Dynamique
( Dynamic, adOpenDynamic ). |
Il
ne contient pas de nombre fixe d'enregistrement. Toute modification
effectuée sur la base de donnée et répercutée
sur le Recordset. Déplacement avant et arrière possible. |
| Jeu
de clés (keyset, adOpenKeySet ). |
Identique
au curseur dynamique à ceci près que le jeu d'enregistrement
est figé : tout ajout sur la base de donnée ne sera
pas repercuté sur le Recordset.
Les modifications seront prises en compte.
Pour toute suppression dans la base, les données correspondantes
ne seront plus accessibles. |
2.2
Types de verrous
|
Verrous
|
| Lecture
seule (adLockReadOnly). |
Verrou par defaut. Le jeu d'enregistrement ne peut être
modifié. |
| Pessimiste
(adLockPessimistic). |
Lors de la modification d'un enregistrement, le fournisseur
tente de verrouiller celui-ci afin de garantir le succès de
la modification. Le verrouillage intervient dès l'édition. |
| Optimiste
( adLockOptimistic). |
L'enregistrement n'est pas verrouillé tant
que l'on n'a pas fait appel à la méthode update. |
| Optimiste
par lots (adLockBatchOptimistic). |
Idem que pour le verrouillage optimiste à la différence
que cette fois-ci le verrouillage concerne plusieurs enregistrements
et que la méthode à utiliser est : UpdateBatch |
2.3
ADOVBS.INC
Les
constantes adOpenStatic, adLockReadOnly, adOpenDynamic et les autres utilisées
pour définir les types de verrous et de curseur ne sont pas directement
intégrées aux ASP.
Il existe deux façons de passer des paramètres à
l'ouverture du recordset :
OBJ_RS.Open "table",OBJ_connexion,0,1
ou
OBJ_RS.Open "table",OBJ_connexion,adOpenForwardOnly,adLockReadOnly
La
deuxième ligne de code est équivalente à la première,
à la différence que en utilisant les constantes définies
dans le fichier ADOVBS.INC la lecture est plus simple et pas besoin de
chercher la valeur des constantes.
|