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

  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

Pseudo-code

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

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.

Fonction PHP

<?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 ;
}
?>

Procédure VBA

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

Programme Java

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();
 }
 }
}
AccueilCours > Applications et bases de données > Écriture< PrécédentSuivant >