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é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
?>
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
// 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
}