Méthode générale d'accès à une BD en écriture par un langage de programmation
Méthode :
Connexion à la base de données et récupération d'un identifiant de connexion
Écriture de la requête d'insertion ou de mise à jour de données
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)
Test du résultat et dialogue avec l'utilisateur ou remontée d'erreur en cas de résultat FALSE
Clôture de la connexion
Méthode : Pseudo-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.
Exemple : Fonction PHP
1
<?php
2
function fInsert ($pValue) {
3
// Connexion à la base de données4
$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ête11
$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 connexion21
$vConn = null ;
22
}
23
?>Exemple : Procé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
Exemple : Programme Java
1
class fInsert {
2
public static void main(String[] args) {
3
try {4
// Connexion5
DriverManager.registerDriver (new OracleDriver());
6
Connection vCon = DriverManager.getConnection("jdbc:oracle:thin:nf17/nf17@localhost:1521:test");
7
// Exécution de la requête8
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
}