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

Méthode

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

  2. Écriture de la requête d'insertion ou de mise à jour de données

  3. Exécution de la requête sur la connexion ouverte et récupération d'un résultat d'exécution (ici TRUE ou FALSE selon que la requête s'est exécuté ou non avec succès)

  4. Test du résultat et dialogue avec l'utilisateur ou remontée d'erreur en cas de résultat FALSE

  5. Clôture de la connexion

MéthodePseudo-code

1
// Connexion à la base de données
2
$vHost = "foo.fr"
3
$vPort = "6666"
4
$vData = "myDatabase"
5
$vUser = "me"
6
$vPass = "secret"
7
$vConn = CONNECT ($vHost, $vPort, $vDb, $vUser, $vPass)
1
// Écriture de la requête
2
$vSql = "insert into t (a) values (1) ;"
1
// Exécution de la requête
2
$vResult = QUERY($vConn, $vSql)
1
// Test du résultat
2
IF (NOT $vResult) THEN MESSAGE("Échec de l'exécution")
1
// Clôture de la connexion
2
CLOSE ($vConn)

Remarque

La connexion est bien entendu inutile dans le cas de procédure stockées, qui se trouvent par définition déjà associées à une BD en particulier.

ExempleFonction PHP

1
<?php
2
function fInsert ($pValue) {
3
// Connexion à la base de données
4
  $vHost = "foo.fr" ;
5
  $vPort = "5432" ;
6
  $vData= "myDatabase" ;
7
  $vUser = "me" ;
8
  $vPass = "secret" ;
9
  $vConn = new PDO('pgsql:host=$vHost;port=$vPort;dbname=$vData', '$vUser', '$vPass');
10
// Écriture, exécution et test de la requête
11
  $vSql = "INSERT INTO t (a) VALUES ($pValue)" ;
12
  $vResult=$vConn->query($vSql);
13
  if (! $vResult) then {
14
    echo "Échec de l'insertion" ;
15
    return 0 ;
16
    }
17
  else {
18
    return 1 ;
19
    }
20
// Clôture de la connexion
21
  $vConn = null ;
22
}
23
?>

ExempleProcédure VBA

1
Sub fInsert(pValue As String)
2
  vSql = "INSERT INTO t (a) VALUES ('" & pValue & "')"
3
  CurrentDb.CreateQueryDef("", vSql).Execute
4
End Sub
5
  

ExempleProgramme Java

1
class fInsert {
2
public static void main(String[] args) {
3
try {
4
  // Connexion
5
  DriverManager.registerDriver (new OracleDriver());
6
  Connection vCon = DriverManager.getConnection("jdbc:oracle:thin:nf17/nf17@localhost:1521:test");
7
  // Exécution de la requête
8
  Statement vSt = vCon.createStatement();
9
  vSt.execute("INSERT INTO t (a) VALUES ('" + args[0] + "')");
10
 }
11
catch (Exception e) {
12
  e.printStackTrace();
13
 }
14
 }
15
}