Méthode générale d'accès à une BD en lecture par un langage de programmation

DéfinitionPointeur sur un résultat de requête

Lorsqu'un programme exécute une requête dans une BD, il récupère un pointeur sur un résultat de requête permettant de parcourir le tableau résultant de l'exécution de la requête ligne par ligne.

En effet :

  • Une requête SQL retourne toujours un tableau (même si parfois il n'a qu'une ligne et une colonne), c'est le fondement du modèle relationnel

  • En général il n'est pas souhaitable que ce tableau soit transmis directement sous la forme d'une structure en mémoire (array), car le résultat d'une requête peut être très volumineux (et ne pas tenir en mémoire primaire)

  • La solution générale est donc que la BD fournisse le résultat ligne par ligne

Le pointeur permet de :

  • Retourner la ligne pointée sous la forme d'un vecteur (tableau à une seule ligne)

  • Passer à la ligne suivante

  • Savoir si l'on a atteint la fin du tableau (ligne N)

Pointeur sur un résultat de requête

Méthode

  1. Connexion à la base de données et récupération d'un identifiant de connexion

  2. Écriture de la requête de sélection

  3. Exécution de la requête sur la connexion ouverte et récupération d'un pointeur sur un résultat de requête

  4. Parcours du pointeur dans une boucle permettant de rapporter et traiter (afficher par exemple) le tableau ligne par ligne

  5. Clôture de la connexion

MéthodePseudo-code

1
// Connexion à la base de données
2
host = "foo.fr"
3
port = "6666"
4
data = "myDatabase"
5
user = "me"
6
pass = "secret"
7
conn = CONNECT(host, port, data, user, pass)
1
// Écriture de la requête
2
sql = "SELECT a, b FROM  t;"
1
// Exécution de la requête
2
pointeur = QUERY (conn, sql)
1
// Traitement du résultat
2
WHILE (pointeur) 
3
  FETCH pointeur IN result
4
  PRINT result[1]
5
  PRINT result[2]
6
  NEXT pointeur
7
END WHILE
1
// Clôture de la connexion
2
CLOSE (conn)