Internet et les bases de données
Beaucoup de possibilités qui dépendent de différents facteurs, suivant la situation et le projet. Voici quelques facteurs qui rentrent en compte : type de base de données à utiliser (Oracle, SQL Server, MySQL, Dbase ...), type d'hébergement disponible, (hebergé ou hébergeur ?) connaissances déjà acquises (c'est couteux d'avoir une ressource par technologie... )
Il exite beaucoup de moyens, en voici quelques-uns :
BD Oracle :
Oracle Application Server. Cette offre est inclue avec les distributions d'Oracle. Elle comprend son propre serveur Web (Oracle Web Server).
Les procédures Oracle fonctionnent sur le principe des CGI, elles récupèrent en paramètres les données d' un formulaire,et font des actions dans les procédures grâce à des requêtes SQL classiques (Curseurs, update, trigger).
Exemple :
CREATE OR REPLACE PROCEDURE
aff_update_metier_unite(d IN VARCHAR2) IS
-- d correspond a la valeur d'un champ de formulaire
-- HTML comme <input name="d">
BEGIN
DECLARE
-- Selection dans un curseur des references
-- qui nous interessent
CURSOR moncurseur IS
SELECT DISTINCT denomination
FROM metier_unite
WHERE metier like d||'%';
int i VARCHAR2(50);
BEGIN
-- Utilisation du module htp d'Oracle
-- permettant la syntaxe HTML
htp.p('<html><head><title>Exemple</title></head>');
htp.p('<form action="/owa/aff_metier">');
htp.p('<select name="d" size="1">');
-- On affiche chaque valeur trouve dans
-- une ligne de tableau
FOR e IN moncurseur LOOP
htp.p('<option'>||e.denomination);
END LOOP;
htp.p(</form></body></html>'');
END;
La documentation en français de PHP
PHP3 :
Une solution économique et terriblement efficace. Il s'agit de script inclu dans le code HTML, et interprété par le serveur. Le client voit l résultat. PHP3 fonctionne très facilement avec MySQL, mais supporte également d'autres BD.
Exemple:
<html><head><title>Exemple PHP3</title></head>
<body>
<h1>Affichage des données de la table annonce</h1>
<!-- Debut du code php -->
<?
# Parametres de connexion
$dbName = "alian";
$MysqlName = "alian";
$MysqlPW = "passwd";
# Connection a la base
mysql_connect("localhost",$MysqlName,$MysqlPW);
# Selections des données présentes dans la table
$SelectStr = "SELECT * FROM Annonces";
$Res = MySQL($dbName,$SelectStr);
$RowCount = MySQL_NUMROWS($Results);
# Affichage des données.
ECHO "<table>";
$i = 0; WHILE ( $i < $RowCount)
{
ECHO "<tr>";
ECHO "<td>".MySQL_RESULT($Res,$i,"modele")."</td>";
ECHO "<td>".MySQL_RESULT($Res,$i,"nom")."</td>";
ECHO "<td>".MySQL_RESULT($Res,$i,"annee")."</td>";
ECHO "</tr>";
}
?>
</body>
</html>
Perl : Module DBI et DBD, Win32 : ODBC.
Les requêtes SQL sont encapsulées dans le script Perl en s'aidant des fonctionnalités de ces modules. Comme tout module Perl, la doc est assez explicite : perldoc DBI ;-). Vous devez en fait installez deux modules, DBI et DBD::<votre_base_de_données>. Sous Windows, utilisez le module ppm de ActivePerl.
Sinon voici un exemple de connection à Oracle, après installation de DBI et DBD::Oracle. Cela implique aussi de disposer sur la machine executant le script du client Oracle.
use DBI;
my $user = 'scott';
my $passwd = 'dpp1';
my $listener = 'mon_listener';
# Connection à la base
my $dbh = DBI->connect("dbi:Oracle:$listener",
$user,
$passwd)
|| die "Can't connect to Oracle:$!.\n";
# Recuperation des données de la table meubles
my $requete = 'SELECT id,nom,prix FROM MEUBLES';
my $sth = $dbh->prepare($requete);
$sth->execute();
my $buf;
# Pour chaque meuble
while (my @row = $sth->fetchrow_array)
{$buf.=$row[0]."\t".$row[1]."\t".$row[2]."\n";}
Java :
On t'appuie sur certaines classes déjà existantes dans le package java.sql.
Exemple d'accès à Oracle:
DriverManager.registerDriver
(new oracle.jdbc.driver.OracleDriver());
String connString =
"jdbc:oracle:thin:@192.168.100.90:mon_listener";
Connection conn =
DriverManager.getConnection(connString,
"scott",
"tiger");
Statement stmt = conn.createStatement();
ResultSet rs =
stmt.executeQuery("select name from hotel");
rs.next();
ResultSetMetaData rsMeta = rs.getMetaData();
for (int i = 0 ; i < rsMeta.getColumnCount()-1; i++)
{System.out.println(rs.getString(i+1));}
stmt.close();
Liveconnect:
c'est du Javascript côté serveur. C'est une technologie liée il me semble aux serveurs Netscape Entreprise.
ASP technologie Microsoft
qui, il me semble, ne fonctionne sur le serveur sous Windows qu'avec IIS et PWS.