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

CTRL+C pour copier, CTRL+V pour coller
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)
// Connexion à la base de données
$vHost = "foo.fr"
$vPort = "6666"
$vData = "myDatabase"
$vUser = "me"
$vPass = "secret"
$vConn = CONNECT ($vHost, $vPort, $vDb, $vUser, $vPass)
CTRL+C pour copier, CTRL+V pour coller
1
// Écriture de la requête
2
$vSql = "insert into t (a) values (1) ;"
// Écriture de la requête
$vSql = "insert into t (a) values (1) ;"
CTRL+C pour copier, CTRL+V pour coller
1
// Exécution de la requête
2
$vResult = QUERY($vConn, $vSql)
// Exécution de la requête
$vResult = QUERY($vConn, $vSql)
CTRL+C pour copier, CTRL+V pour coller
1
// Test du résultat
2
IF (NOT $vResult) THEN MESSAGE("Échec de l'exécution")
// Test du résultat
IF (NOT $vResult) THEN MESSAGE("Échec de l'exécution")
CTRL+C pour copier, CTRL+V pour coller
1
// Clôture de la connexion
2
CLOSE ($vConn)
// Clôture de la connexion
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

CTRL+C pour copier, CTRL+V pour coller
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
?>
<?php
function fInsert ($pValue) {
// Connexion à la base de données
  $vHost = "foo.fr" ;
  $vPort = "5432" ;
  $vData = "myDatabase" ;
  $vUser = "me" ;
  $vPass = "secret" ;
  $vConn = new PDO('pgsql:host=$vHost;port=$vPort;dbname=$vData', '$vUser', '$vPass');
// Écriture, exécution et test de la requête
  $vSql = "INSERT INTO t (a) VALUES ($pValue)" ;
  $vResult=$vConn->query($vSql);
  if (! $vResult) then {
    echo "Échec de l'insertion" ;
    return 0 ;
    }
  else {
    return 1 ;
    }
// Clôture de la connexion
  $vConn = null ;
}
?>

ExempleProcédure VBA

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

ExempleProgramme Java

CTRL+C pour copier, CTRL+V pour coller
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
}
class fInsert {
 public static void main(String[] args) {
 try {
  // Connexion
  DriverManager.registerDriver (new OracleDriver());
  Connection vCon = DriverManager.getConnection("jdbc:oracle:thin:nf17/nf17@localhost:1521:test");
  // Exécution de la requête
  Statement vSt = vCon.createStatement();
  vSt.execute("INSERT INTO t (a) VALUES ('" + args[0] + "')");
 }
 catch (Exception e) {
  e.printStackTrace();
 }
 }
}