Database-SQL-RDBMS HOW-TO pour Linux
Al Dev (Alavoor Vasudevan) aldev@hotmail.com
v2.0, 17 November 1997, version francaise Janvier 1998
Ce document explique COMMENT mettre en place une Base de Donnees Rela-
tionnelle SQL Objet de la nouvelle generation "PostgreSQL" sur votre
systeme unix qui pourra etre utilisee comme Base de Donnees Serveur
d'Application ou Serveur Web. PostgreSQL se rapproche chaque mois un
peu plus des standards Internationaux ISO et ANSI SQL 1998,92,89. Ce
document donne aussi des informations sur les programmes d'interface a
la base de donnees tels que frontaux GUIs, outils RAD (Developpement
Rapide d'Application ), interfacage des langages de programmation
("C", "C++", Java, Perl), pilotes ODBC, JDBC ainsi que sur les outils
et programmes interfacage d'une Base de Donnees Web . L'information
donnee ici est valable pour toutes autres plates-formes unix et autres
Bases de Donnees. Cette information sera tres utile aux nouveaux util-
isateurs de PostgreSQL, des Bases de Donnees et du langage SQL.
11.. IInnttrroodduuccttiioonn
Tout systeme informatique au monde a besoin d'une base de donnees pour
stocker/retrouver les informations. Sans base de donnees, un
ordinateur devient inutile. La premiere raison pour laquelle on
utilise un ordinateur est de stocker, retrouver et traiter
l'information et de faire cela tres rapidement, et donc, de faire
economiser du temps. En meme temps le systeme doit etre simple,
robuste, rapide, fiable, economique et d'utilisation aisee. Les
systemes de gestion de base de donnees les plus courants sont bases
sur les specifications ISO (International Standard Organisation) SQL
lesquelles sont egalement basees sur les standards americains ANSI
SQL. Les specifications courantes generalement utilisees sont l'ANSI
SQL 92 et l'ANSI SQL 89. Le prochain standard est le SQL 1998/99 aussi
appele SQL-3. Les systemes de gestion de bases de donnees les plus
repandus tels que Oracle, Sybase et Informix s'appuient sur ces
standards ou essaient de les implanter.
Ainsi qu'il est indique dans ce document, il y a plus de 20 varietes,
commerciales/internet, de systemes de gestion de base de donnees
actuellement utilises dans le monde et beaucoup, beaucoup plus dans un
futur proche. En l'absence d'un standard tel que l'ANSI/ISO SQL, il
serait tres difficile pour l'utilisateur de developper une application
une fois pour toutes et de l'utiliser avec tous les systemes de
gestion de bases de donnees. Aujourd'hui, l'utilisateur veut
developper son application une fois pour toutes en utilisant les
normes ISO SQL, ODBC, JDBC et la vendre afin qu'elle puisse etre
utilisee sur une grande variete de systemes de gestion de base de
donnees a travers le monde.
PostgreSQL est la Base de Donnee LIBRE la plus populaire au monde qui
implante la plupart des standards ISO SQL, ANSI SQL/98, SQL/92 et
ANSI SQL/89 RDBMS. PostgreSQL est une base de donnees relationnelle
Objet de la nouvelle generation et les futurs standards ANSI SQL tels
que le SQL 1998 (SQL-3) et au-dela traiteront de maniere croissante de
bases de donnees Objet et de types de donnees Objet. PostgreSQL est le
seul SGBD (RDBMS - Relational Data Base Management System) au monde
qui supporte les bases de donnees Objet et SQL. Ce document vous
explique comment installer le systeme de gestion de base de donnees
ainsi que tous les paquetages concernant les bases de donnees, comment
mettre en place la base de donnees Web, la base de donnees application
, les frontaux GUIs et les programmes interfacage. On ne saurait trop
RECOMMANDER d'ecrire vos applications bases de donnees 100 %
compatibles avec les standards ISO/ANSI SQL, ODBC, JDBC ceci rendant
votre application portable sur de multiples SGDBD (Systemes de gestion
de Bases de Donnees) tels que PostgreSQL, Oracle, Sybase, Informix
etc.
La haute qualite, et un large ensemble de possibilites de PostgreSQL
viennent du fait que ce systeme est developpe suivant le principe du
'Modele de developpement de Systemes Ouvert'. Les systemes ouverts
sont ceux ou la totalite du code source est fournie et ou le
developpement se fait a travers l'internet par une tres large
communaute de cerveaux humains en reseau. La tendance future des
developpement logiciels reside dans ce que l'on appelle les "super
autoroutes de l'information" qui s'etendent a travers le monde entier.
Dans les annees a venir, la croissance d'internet va etre explosive et
de ce fait favorisera l'adoption de PostgreSQL par les utilisateurs.
Avec l'application des principes de la physique (quantique, classique,
thermodynamique), des mathematiques et des statistiques a la qualite
des logiciels, on obtient la meilleure qualite des logiciels
'Systemes Ouverts' tel que PostgreSQL en mettant le code source des
programmes a la disposition d'un grand nombre de cerveaux humains
interconnectes par les super-autoroutes de l'information. Plus le
nombre de cerveaux au travail sera grand, meilleure sera la qualite du
logiciel produit. Le modele "Systeme Ouvert" evite aussi de reinventer
la roue tout en etant particulierement economique, en diminuant les
delais de distribution et en suivant les lois economiques modernes
d'optimisation des ressources nationales et globales. Dans un futur
proche, a l'aube du 21-ieme siecle, la maniere de se procurer un
logiciel va changer. Les utilisateurs accorderont en premier lieu leur
preference aux logiciels ouverts tel PostgreSQL. Acheter un logiciel
PEUT devenir une attitude archaique. On a seulement besoin d'acheter
un bon materiel, cela vaut mieux de depenser de l'argent en materiel
et trouver le logiciel sur internet.
Puisqu'une masse importante de travail a ete effectuee sur PostgreSQL
au cours des 12 dernieres annees, cela n'aurait aucun sens de recreer
ex-nihilo un autre systeme de gestion de base de donnees satisfaisant
aux normes ANSI/ISO SQL. Il est bien plus interessant de prendre le
code existant de PostgreSQL, de commencer a l'utiliser, de l'ameliorer
et d'y ajouter les fonctionnalites manquantes.
PostgreSQL n'est pas seulement un SGBD libre mais aussi un "Produit
Internet" et a ce titre merite respect et reconnaissance de tout un
chacun.
22.. QQuu''eesstt--ccee qquuee PPoossttggrreeSSQQLL ??
PostgreSQL Version 6.2.1 patch level 3 est un SGBD libre, son code
source complet est fourni. De plus, c'est un SGBD Relationnel-Objet
pratiquement conforme (de plus en plus conforme) aux normes ANSI
SQL1998,92,89. Il fonctionne sur diverses plates-formes materielles
sous differents Systemes d'Exploitation. PostgreSQL est une
amelioration du SGDB POSTGRES, prototype de recherche de SGDB de la
prochaine generation. PostgreSQL, tout en conservant le puissant
modele de donnees et la richesse des types de donnees de POSTGRES,
remplace le langage de requete PostQuel par un sous-ensemble etendu de
SQL.
Le developpement de PostgreSQL est realise par une equipe de
developpeurs Internet qui sont tous inscrits a la liste de diffusion
"PostgreSQL development mailing list". Son coordinateur actuel est
Marc G. Fournier scrappy@postgreSQL.org . Cette equipe est maintenant
responsable des developpements actuels et futurs de PostgreSQL.
Les auteurs de PostgreSQL 1.01 sont Andrew Yu et Jolly Chen. De
nombreux autres ont contribue au portage, aux tests, a la mise au
point et a l'amelioration du code. Le code original Postgres, duquel
PostgreSQL est issu, est le resultat de l'effort de nombreux etudiants
de troisieme cycle, de deuxieme cycle et d'enseignants sous la
direction du Professeur Michael Stonebraker de l'universite de
Californie, Berkeley.
Le nom original du logiciel a Berkeley etait Postgres. Lors de l'ajout
des fonctionnalites SQL en 1995, il fut renomme Postgres95. Ce nom fut
change a la fin de 1996 en PostgreSQL.
Des millions d'exemplaires du SGBD PostgreSQL sont installes comme
serveurs, serveurs Web et serveurs d'application. Ce SGBD est tres
avance, c'est un SGBD Relationnel-Objet (ORDBMS).
PostgreSQL peut stocker plus de types de donnees que les types
traditionnels entier, caracteres, etc. - L'utilisateur peut creer des
types, des fonctions, de l'heritage de type etc. (La Version 7.0
rendra ces fonctions avancees encore plus puissantes). PostgreSQL
fonctionne sur Solaris, SunOS, HPUX, AIX, Linux, Irix, Digital Unix,
BSDi, NetBSD, FreeBSD, SCO unix, NEXTSTEP, Unixware et toutes sortes
d'unix. Un portage pour Windows 95/NT est en cours de realisation.
+o Titre : PostgreSQL SQL RDBMS Database (Systeme de Gestion
de Base de Donnees Relationnelle Objet)
+o Version actuelle : 6.2.1 patch level 3
+o Age : PostgreSQL a 12 ans. En developpement depuis 1985
+o Auteurs : Developpe par des millions
d'universites/compagnies sur internet au cours des 12 dernieres
ANNEES
33.. OOuu llee ttrroouuvveerr??
On peut acheter le CDROM Redhat 4.2 qui contient deja postgresql en
paquetage rpm (a la fois en code source et en binaires) chez :
+o Linux System Labs Web site : 6 (U.S.
dollars)
+o Cheap Bytes Inc Web site : 6 (U.S.
dollars)
Distributions uniquement en binaire de PostgreSQL :
+o On peut executer PostgreSQL sans compiler le source. Recuperer les
binaires pour Intel-Linux de l'url
le fichier se nomme
postgresql-6.2-3.i386.rpm. Son format est de type paquetage redhat
'rpm'. Il contient a la fois le source et les binaires de
PostgreSQL.
+o Sites binaires pour Solaris, HPUX, AIX, IRIX, Linux :
Si vous faites une
compilation pour n'importe laquelle des plates-formes envoyer le
binaire a ce site, cela peut etre utile aux autres.
+o ftp site : recuperer les binaires pour Intel-Linux de
le fichier se nomme
postgresql-6.2-3.i386.rpm. Son format est de type paquetage redhat
'rpm'. Il contient a la fois le source et les binaires de
PostgreSQL..
Sites WWW Web :
+o Site Web primaire :
+o Site Web secondaire :
+o
+o
+o
+o
Les sites ftp sont indiques ci-dessous :-
+o Primaire FTP :
+o Secondaire FTP :
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
Le code source de PostgreSQL est aussi disponible sur tous les sites
miroirs de sunsite.unc (soit environ 1000 sites autour du globe). Il
se trouve dans la distribution Linux Red Hat dans le fichier
/pub/contrib/i386/postgresql.rpm.
+o Pour obtenir la liste des sites miroirs aller a l'url
44.. PPoossttggrreeSSQQLL SSuuppppoorrttee ddeess BBaassee ddee DDoonnnneeeess eexxttrreemmeemmeenntt ggrraannddeess >> 220000
GGiiggaass
Si vous avez besoin d'utiliser des bases de donnees extremement
grandes (superieures a 5 gigaoctets), il est fortement recommande
d'utiliser des machines 64-bit telles que : Digital Alpha cpu, Sun
Ultra-sparc 64-bit cpu, Silicon graphics 64-bit cpu, a venir Intel
Merced IA-64 cpu, machines HPUX 64bit , IBM 64-bit machines. Si l'on
compile PostgreSQL avec un cpu 64-bit il pourra supporter d'enormes
bases de Donnees et de larges requetes. Les performances de PostgreSQL
pour des interrogations sur de grandes tables et de grandes bases de
donnees sera plus rapide de plusieurs ordres de grandeurs que sur des
machines a cpu 32-bit . L'avantage des machines 64-bit est qu'elles
disposent d'un grand espace d'adressage memoire et que le systeme
d'exploitation peut gerer de tres grands systemes de fichiers. Cela
permet des meilleures performances avec de grandes bases de donnees,
plus de memoire centrale (RAM), plus de possibilites etc...
55.. PPoossttggrreeSSQQLL eesstt--iill ffiiaabbllee??
Le paquetage de "Test de Regression" permet de s'assurer de son bon
fonctionnement. Il est inclus (src/test/regress) dans la distribution
et permet a l'ordinateur d'effectuer la verification des operations
SQL standard ainsi que des capacites de PostgreSQL. L'avantage de ce
test effectue par l'ordinateur vient du fait que celui-ci peut
effectuer plusieurs millions de test SQL tres rapidement. La vitesse
de l'ordinateur est un milliard de fois plus rapide que celle de
l'esprit humain! Le paquetage de tests contient des centaines de
programmes de test SQL. Si vous le jugez utile vous pouvez en ajouter
beaucoup d'autres. Dans ce cas penser a envoyer ces tests au site
PostgreSQL primaire si vous pensez que cela peut etre utile aux
autres. Le paquetage de Test de Regression permet d'asseoir la
confiance des utilisateurs en PostgreSQL et facilite le deploiement
rapide de PostgreSQL sur des systemes en production sans inquietude
majeure.
66.. OOuuttiill GGUUII ffrroonnttaall ppoouurr PPoossttggrreeSSQQLL ((IInntteerrffaaccee UUttiilliissaatteeuurr
GGrraapphhiiqquuee))
PostgreSQL est dote d'une librairie d'interface TCL/TK dans la
distribution appelee 'pgtcl'. TCL/TK est un outil de developpement
rapide d'application et un langage de script extremement puissant. On
developpe une fois pour toutes et on utilise sur NT, Win 95, Linux et
tous les systemes Unix! TCL/TK est egalement largement utilise comme
langage de script sur internet. Ce qui permet de n'avoir qu'un seul
langage pour couvrir tous ses besoins - applications et internet. TCL
est l'abreviation de Integre) pour TCL/TK nomme SpecTCL. Verifiez la
presence de ce paquetage (format rpm) dans la distribution linux
Redhat ou dans l'un des sites sunscript indiquees ci-apres. TCL/TK est
normalement inclus dans tous les cdrom linux. On peut egalement
l'obtenir a partir des sites -
+o
+o
+o
+o Manuels de reference: de nombreux livres sur TCL/TK sont
disponibles sur le marche.
+o Visual TCL
77.. OOuuttiillss ddee ddeevveellooppppeemmeenntt iinntteeggrreess ppoouurr PPoossttggrreeSSQQLL ((IInntteerrffaaccee UUttiill--
iissaatteeuurr GGrraapphhiiqquuee))
Essayez les outils de developpement suivants utilisable en conjonction
avec les pilotes odbc/jdbc. Ils sont similaires a Borland C++
Builder, Borland JBuilder.
Vibe est un IDE Java et C++ (Environnement de Developpement Integre) a
ete nomme IDE de l'annee par la revue "Unix Review". Ce produit a 800
US dollars est disponible pour linux au prix extremement bas de 79 US
dollars pour un duree limitee. Essayez le! C'est le reve du
developpeur.
+o Des informations complementaire sur Vibe sont disponibles a
Vous pouvez aussi utiliser Borland C++ Builder, JBuilder,
PowerBuilder sur Windows95 pour se connecter a PostgreSQL sur une
machine unix au travers de pilotes odbc/jdbc.
Outils IDE gratuits -
Regardez le CDROM de la distribution RedHat.
+o FreeBuilder
+o SpecTCL
+o JccWarrior
+o Applixware Tool
+o XWPE X Windows Programming Environment
+o XWB X Windows Work Bench
+o NEdit
88.. OODDBBCC PPiillootteess ppoouurr PPoossttggrreeSSQQLL
ODBC signifie 'Open DataBase Connectivity'. C'est un standard repandu
pour acceder aux informations des bases de donnees de differents
vendeurs. Le fonctionnement des applications ecrites en utilisant les
pilotes ODBC est garanti quelle que soient les bases de donnees
utilisees PostgreSQL, Oracle, Sybase, Informix etc..
+o Open Link Software Corporation
distribue des ODBC pour PostgreSQL et d'autres bases de donnees.
Open Link dispose aussi d'ODBC gratuits (quantite limitee) verifier
aupres d'eux.
+o C'est le site primaire de
PostODBC (PostgreSQL ODBC) . Malheureusement c'est un site
particulierement lent.
+o Ce miroir est maintenu par
Julia Anne Case qui est aussi un developpeur PostODBC majeur.
Il existe aussi un projet interessant appele FreeODBC Pack Package .
Il n'y a pas de version PostgreSQL, peut-etre pouvez vous y
participer.
+o c'est une version gratuite
d'ODBC.
99.. PPiillootteess UUDDBBCC ppoouurr PPoossttggrreeSSQQLL
UDBC est une version statique de pilote de gestionnaire et de DLL
d'ODBC independant, pour integrer le support de la connectivite base
de donnees directement au niveau des applications.
+o Open Link Software Corporation vends
UDBC pour PostgreSQL et autres SGBD. Open Link dispose aussi
d'UDBC gratuits (quantite limitee) verifier aupres d'eux.
1100.. PPiillootteess JJDDBBCC ppoouurr PPoossttggrreeSSQQLL
JDBC signifie 'Java DataBase Connectivity'. Java est un langage de
developpement independant de la plate-forme d'utilisation developpe
par Sun Microsystems. Les programmeurs Java sont encourages a ecrire
leurs applications en utilisant JDBC pour faciliter la portabilite
entre differentes plates-formes telles que PostgreSQL, Oracle,
informix, etc. Si vous ecrivez des applications Java applications vous
pouvez obtenir les pilotes JDBC pour PostgreSQL a partir des sites
suivants :
Le pilote JDBC est inclus dans la distribution PostgreSQL.
+o Sun's Java
connectivity to PostgreSQL
+o
+o Open Link Software Corporation vends
JDBC pour PostgreSQL et autres SGBD. Open Link dispose aussi
d'JDBC gratuits (quantite limitee) verifier aupres d'eux.
1111.. KKaanncchheennjjuunnggaa -- JJaavvaa RRAADD TTooooll ffoorr PPoossttggrreeSSQQLL
Kanchenjunga est un Outil de Developpement Rapide d'Application Java
pour PostgreSQL. On peut utiliser cet outil pour developper rapidement
une application JAVA s'interfacant a PostgreSQL.
+o
1122.. CCllaasssseess JJaavvaa ppoouurr PPoossttggrreeSSQQLL
Ces classes pour PostgreSQL seront tres utiles au programmeur JAVA.
+o
+o
1133.. PPiilloottee dd''iinntteerrffaaccee ddee SSGGBBDD PPeerrll ((DDaattaabbaassee IInntteerrffaaccee DDBBII)) ppoouurr
PPoossttggrreeSSQQLL
1133..11.. iinntteerrffaaccee PPeerrll 55 ppoouurr PPoossttggrreeSSQQLL
Cette interface est incluse dans la distribution de PostgreSQL. On la
trouve dans le repertoire src/pgsql_perl5.
+o Email : E.Mergl@bawue.de
+o On la trouve aussi dans -
+o Page d'accueil Perl :
1133..22.. QQuu''eesstt--ccee qquuee DDBBII ??????
L'interface de SGBD Perl (Perl Database Interface - DBI) est une
interface logicielle d'acces a un SGBD (Application Programming
Interface - API) pour le langage PERL. Les specifications de l'API DBI
perl definissent un ensemble de fonctions, de variables et de
conventions d'acces a un SGDB coherent et independant du SGBD utilise.
1133..33.. AAnnnnoonnccee dduu ppiilloottee DDBBII DDBBDD--PPgg--00..6633 DDBBII ppoouurr PPoossttggrreeSSQQLL
Sur le site CPAN on trouve DBD-Pg-0.63.tar.gz. Depuis sortie de la
derniere version publique, les modifications suivantes ont ete
effectuees :
- - adaptation a PostgreSQL-6.2 : o $ sth->rows de meme que $
sth->execute et $ sth->do renvoient le nombre de lignes affectees meme
pour les instructions non-Select. o ajout du support d'autorisation
par mot de passe, lire la page du manuel concernant pg_passwd.
- - the data_source parameter of the connect method accepts two
additional parameters which are treated as host and port:
DBI->connect("dbi:Pg:dbname:host:port", "uid", "pwd")
- - support de l'instruction AutoCommit. Lire la documentation de ce
module pour evaluer son impact sur vos scripts !
- - prise en compte dans un meilleur style perl du type de donnee
bool, Lire la documentation de ce module pour evaluer son impact sur
vos scripts !
Pour de plus amples informations voir:
1133..44.. NNootteess ccoonncceerrnnaanntt cceettttee vveerrssiioonn eett ffiicchhiieerr LLIISSEEZZ--MMOOII
#---------------------------------------------------------
#
# $Id: README,v 1.10 1997/10/05 18:25:55 mergl Exp $
#
# Portions Copyright (c) 1994,1995,1996,1997 Tim Bunce
# Portions Copyright (c) 1997 Edmund Mergl
#
#---------------------------------------------------------
**********************************************************
* *
* Cette version contient des modifications *
* INCOMPATIBLES *
* _------------ *
* avec les versions precedentes. *
* *
* Lire la documentation du module *
* pour l'attribut AutoCommit *
* et le type de donnee bool. *
* *
**********************************************************
DESCRIPTION :
------------
Ceci est la version 0.63 de DBD-Pg. DBD-Pg est une interface
PostgreSQL pour Perl 5 utilisant DBI.
Pour des informations complementaires concernant DBI consulter:
COPYRIGHT :
-----------
La distribution de ce document est soumise aux conditions de la
licence publique generale GNU ou la licence protegeant la creation
Artistique (Artistic License), ainsi que c'est specifie dans le
fichier LISEZ-MOI perl.
SI VOUS AVEZ DES PROBLEMES :
---------------------------
Envoyez vos commentaires et vos rapports d'erreur a E.Mergl@bawue.de
Pensez a inclure les messages affiches par perl -v, et perl -V, la
version de PostgreSQL, la version de DBD-Pg, et la version de DBI dans
votre rapport d'erreur.
CONTRAINTES LOGICIELLES :
------------------------
- compiler, tester et installer Perl 5 (au moins 5.002) -
compiler, tester et installer le module DBI (au moins 0.89) -
compiler, tester et installer PostgreSQL (au moins 6.2)
PLATEFORMES :
-------------
Cette version def DBD-Pg a ete developpee pour Linux 2.0 avec
chargement dynamique des extensions perl. Merci de me faire savoir si
vous rencontrez des problemes sur d'autres plates-formes.
INSTALLATION :
--------------
Dans le fichier Makefile il y a un test la variable d'environnement
POSTGRES_HOME ainsi que de quelques arborescences standard, pour
trouver le repertoire racine de votre installation Postgres. Taper les
commandes suivantes:
1. perl Makefile.PL 2. make 3. make test 4. make install
( de 1. a 3. comme utilisateur normal, pas comme root ! )
TEST :
------
Lancer 'make test'. Noter que l'utilisateur lancant ce script doit
avoir ete cree avec des droits d'acces lui permettant de creer des
bases de donnees "ET" des utilisateurs !. Ne pas lancer ce script en
tant que root!.
Si le test echoue avec le message 'login failed', verifier que l'acces
a template1 de la base de donnees ainsi qu'a pgperltest ne sont pas
proteges dans pg_hba.conf.
Si vous utilisez la bibliotheque partagee libpq.so verifiez que votre
chargeur dynamique trouve libpq.so. La commande Linux /sbin/ldconfig
-v devrait vous renseigner sur l'endroit ou se trouve libpq.so. Si
ldconfig ne trouve pas libpq.so, soit ajoutez une entree appropriee
dans /etc/ld.so.conf et relancez ldconfig ou ajouter son chemin dans
la variable d'environnement LD_LIBRARY_PATH. On aura comme message
typique resultant de ce type d'erreur : install_driver(Pg) failed:
Can't load './blib/arch/auto/DBD/Pg/Pg.so' for module DBD::Pg: File
not found at
Quelques distributions Linux ont une installation incomplete de perl.
Si vous avez des erreurs de compilation du style "XS_VERSION_BOOTCHECK
undeclared", executez un Si ce fichier n'est pas present, il est
indispensable de recompiler et de reinstaller perl.
Utilisateurs SGI : si vous avez un defaut de segmentation, assurez-
vous que vous utilisez la version de malloc obtenue avec perl lors de
la compilation de perl (ce n'est pas le cas par defaut). "David R.
Noble" drnoble@engsci.sandia.gov drnoble@engsci.sandia.gov
---------------------------------------------------------------------------
E.Mergl@bawue.de October 05, 1997
---------------------------------------------------------------------------
1133..55.. FFAAQQ ppoouurr DDBBII
On trouvera ci-dessous les Questions Frequemment Posees (FAQ) pour
DBI. La page Web d'accueil se trouve a
DBI Foire Aux Questions v.0.35
Derniere mise a jour : 20 Juin, 1997
* NAME
* SYNOPSIS
* VERSION
* DESCRIPTION
* Information & Sources d'Informations
* 1.1 Qu'est-ce que DBI, DBperl, Oraperl and *perl?
* 1.2. Ou puis-je les trouver?
* 1.3. Ou puis-je trouver plus d'informations?
* Problemes de compilation
* 2.1. Problemes de compilation ou "echec aux tests!"
* Questions de Plates-formes et de Pilotes
* 3.1 Quelle est la difference entre ODBC et DBI?
* 3.2 DBI est-il supporte sur les plates-formes Windows 95 / NT ?
* 3.3 Puis-je acceder a des bases de donnees Microsoft Access ou SQL-Server avec DBI?
* 3.4 Y-a-t'il un DBD pour X?
* 3.5 Qu'est-ce que DBM? Et pourquoi dois-je utiliser DBI a sa place?
* 3.6 Quand mSQL-2 sera t'il supporte?
* 3.7 Quel systeme de gestion de base de donnees me recommandez vous?
* 3.8 Est-ce que X est supporte dans DBI?
* Questions de programmation
* 4.1 Est-ce que DBI est d'une quelconque utilite pour la programmation CGI?
* 4.2 Comment puis-je obtenir des temps de connexion plus rapides avec DBD::Oracle et CGI?
* 4.3 Comment puis-je obtenir des connexions persistantes avec DBI et CGI?
* 4.4 ``Quand je lance un script perl a partir de la ligne de commande, ca
marche, mais, quand je le lance a partir de C, ca echoue!" Pourquoi?
* 5.1 Puis-je faire de l'execution en parallele avec DBI?
* 5.2 Comment manipuler des donnees BLOB avec DBI?
* 5.3 Comment puis-je invoquer des procedures enregistrees avec DBI?
* 5.4 Comment puis-je recuperer les valeurs de retour des procedures enregistrees avec DBI?
* 5.5 Comment puis-je creer ou detruire une base de donnees avec DBI?
* 5.6 Comment puis-je enregistrer ou annuler une instruction avec DBI?
* 5.7 Comment les valeurs NULL sont-elles prises en compte par DBI?
* 5.8 Qu'est-ce que c'est que ces histoires de methodes func?
* Support et formation
* Assistance Commerciale
* Formation
* Autres References
* AUTEUR
* COPYRIGHT
----------------------------------------------------------------------------
NAME
DBI::FAQ -- Foire Aux Questions pour l'interface de SGBD Perl5
----------------------------------------------------------------------------
SYNOPSIS
perldoc DBI::FAQ
----------------------------------------------------------------------------
VERSION
La version actuelle de ce document , du 20 Juin, 1997, porte le numero 0.35.
----------------------------------------------------------------------------
DESCRIPTION
Ce document contient les reponses aux questions les plus frequemment posees
a la fois sur les Mailing Lists DBI et personnellement aux membres de l'equipe
de developpement DBI.
----------------------------------------------------------------------------
Information de base & Sources d'Information
----------------------------------------------------------------------------
1.1 Qu'est-ce que c'est que DBI, DBperl, Oraperl and *perl?
Pour citer Tim Bunce, l'architecte et l'auteur de DBI :
``DBI est une interface logicielle d'acces aux bases de donnees (Application
Programming Interface -API) pour le langage Perl. Les specifications DBI
API definissent un ensemble de fonctions, de variables et de conventions
coherents d'interfacage a une base de donnees independant de la base de
donnees utilisee.''
En langage simple, l'interface DBI permet aux utilisateurs d'acceder de maniere transparente
a de multiples base de donnees. Ainsi, Si vous vous connectez a une
base de donnees Oracle, Informix, mSQL, Sybase ou n'importe quelle autre, vous n'avez
pas besoin de connaitre les mecanismes sous-jacents de la couche 3GL. L'API
definie par DBI fonctionnera sur tous ces types de bases de donnees.
On obtient un benefice du meme ordre en ayant la possibilite de se connecter a deux bases de
donnees de differents fournisseurs a l'aide du meme script perl, i.e., je veux lire des
donnees d'une base de donnees Oracle et les inserer dans une Informix a partir du meme
programme. La couche logicielle DBI permet de le realiser simplement et efficacement.
Voici un diagramme decrivant ce principe :
[ Architecture DBI ]
DBperl est le nom ancien des specifications de l'interface. Il est utilise maintenant
pour designer les modules perl4 d'interfacage des bases de donnees tels que oraperl,
isqlperl, ingperl et autres. Ces interfaces n'ont pas d'API standard et ne sont
generalement pas supportes.
Voici une liste des modules DBperl, de leur equivalent DBI correspondants et du
support d'information. Notez que les auteurs cites ici ne maintiennent generalement
pas le module DBI de la base de donnees. Les adresses E-mail n'ont pas ete verifiees
et ne doivent etre utilisees que pour les questions concernant les modules perl4 listes
ci-dessous. Les questions sur les pilotes DBI doivent etre directement
adressees aux listes de diffusion des utilisateurs DBI.
Module Name SGBD requis Auteur DBI
----------- ----------------- ------ ---
Sybperl Sybase Michael Peppler DBD::Sybase
Oraperl Oracle 6 & 7 Kevin Stock DBD::Oracle
Ingperl Ingres Tim Bunce & DBD::Ingres
Ted Lemon
Interperl Interbase Buzz Moschetti DBD::Interbase
Uniperl Unify 5.0 Rick Wargo None
Pgperl Postgres Igor Metz DBD::Pg
Btreeperl NDBM John Conover SDBM?
Ctreeperl C-Tree John Conover None
Cisamperl Informix C-ISAM Mathias Koerber None
Duaperl X.500 Directory Eric Douglas None
User Agent
Cependant, certains modules DBI possedent des couches logicielles d'emulation. Ainsi
DBD::Oracle est livre avec une couche d'emulation Oraperl, ce qui permet d'executer
d'anciens scripts oraperl sans modification. La couche logicielle d'emulation traduit
les appels oraperl API en appels DBI et les execute.
Voici une table des couches d'emulation :
Module Couche d'emulation Etat
------ --------------- ------
DBD::Oracle Oraperl Complete
DBD::Informix Isqlperl En cours de developpement
DBD::Sybase Sybperl Fonctionnelle? ( Necessite une
verification)
DBD::mSQL Msqlperl En version experimentale avec
DBD::mSQL-0.61
L'emulation Msqlperl est un cas particulier. Msqlperl est un pilote perl5 pour les
bases de donnees mSQL , mais il ne se conforme pas aux specifications DBI. On
desapprouve son utilisation en faveur de DBD::mSQL. On peut telecharger Msqlperl a
partir du site CPAN via :
http://www.perl.com/cgi-bin/cpan_mod?module=Msqlperl
----------------------------------------------------------------------------
1.2. Ou puis-je le trouver?
DBI est disponible en premier sur :
ftp://ftp.demon.co.uk/pub/perl/db
Il faut utiliser le site CPAN (Comprehensive Perl Archive Network) pour recuperer les
versions a jour des pilotes, en general absentes des sites miroirs. On peut acceder
a CPAN grace au splendide programme "CPAN multiplexeur" de Tom Christiansen's situe
a:
http://www.perl.com/CPAN/
Pour des informations plus specifiques ainsi que pour les URL exactes des pilotes,
veuillez consulter la liste des pilotes DBI et les pages concernant les modules sur:
http://www.hermetica.com/technologia/perl/DBI
----------------------------------------------------------------------------
1.3. Ou puis-je trouver plus d'informations?
Il existe quelques sources d'information sur DBI.
Specifications DBI
http://www.hermetica.com/technologia/perl/DBI/doc/dbispec
On trouve deux specifications disponibles a cette adresse: la nouvelle
specification Draft (edition provisoire) DBI qui est un document en
evolution rapide a mesure que l'equipe de developpement s'approche d'une
version stable de l'interface, et l'ancienne specification historique
DBperl a partir de laquelle l'interface DBI actuelle a evolue.
Il faut considerer ce dernier document comme ne presentant qu'un interet
historique et ne pas l'utiliser en tant que manuel de programmation ou
document de reference. Il demeure cependant une source d'informations
tres utile.
Documentation POD (Plain Old Documentation)
Les PODs sont des morceaux de documentation generalement noyes a
l'interieur des programmes perl qui documentent le code "sur place".
Ce sont des ressources tres utiles pour les programmeurs et les
utilisateurs des modules. Les PODs pour DBI et pour les pilotes
deviennent monnaie courante et la documentation pour les modules
contenant ces PODs peut etre lue avec les commandes suivantes.
La Specification DBI
Les PODs pour la specification DBI peut etre lue avec la commande :
perldoc DBI
Oraperl
Les utilisateurs de la couche d'emulation fournie avec DBD::Oracle,
peuvent s'informer sur la maniere de programmer en utilisant
l'interface Oraperl en tapant:
perldoc Oraperl
Ce qui permettra d'obtenir une copie a jour de la page de manuel
originale ecrite par Kevin Stock pour perl4. L'API oraperl y est
entierement listee et decrite.
DBD::mSQL
Les utilisateurs du module DBD::mSQL peuvent lire des informations
sur quelques fonctions privees et bizarreries de ce pilote en tapant :
perldoc DBD::mSQL
Foire Aux Questions (FAQ)
Ce document, la Foire Aux Questions, est aussi disponible en tant
que documentation POD! Vous pouvez le lire sur votre propre systeme
en tapant :
perldoc DBI::FAQ
Ceci peut etre plus pratique pour ceux qui ne sont pas connectes a
l'Internet ou le sont d'une maniere peu pratique.
Les POD en general
On peut lire des informations sur la maniere d'ecrire des PODs,
ainsi que sur la philosophie des PODs en general en tapant :
perldoc perlpod
Les utilisateurs ayant le module Tk installe seront peut-etre
interesses d'apprendre qu'il existe un lecteur de POD base sur Tk
nomme tkpod. Il formate les POD de maniere pratique et lisible.
Discussions, Cancans et Observations
http://www.hermetica.com/technologia/perl/DBI/tidbits
Il y a , de temps en temps, une serie de discussions de la part de
certaines personnes, dans les listes de diffusion sur DBI,
qui, pour essayer d'eclaircir un simple point, finissent par
transformer en brouillon des documents tout a fait complets. Ces
documents sont souvent de qualite variable, mais donnent un
apercu du fonctionnement des interfaces.
``DBI -- L'interface de SGBD en perl5''
C'est un article ecrit par Alligator Descartes et Tim Bunce sur la structure
de DBI. Il a ete publie dans le numero 5 de ``The Perl Journal''.
Il est extremement bon. Allez acheter ce magazine. En fait, achetez les tous!
Le site WWW de ``The Perl Journal'' est :
http://www.tpj.com
``DBperl''
Cet article, publie dans l'edition de novembre 1996 du ``Dr. Dobbs
Journal'' traitait de DBperl. L'auteur de cet article n'a apparemment
pas contacte un seul membre de l'equipe de developpement DBI pour
verifier l'information contenue dans son article. Plusieurs critiques
de cet article dans les listes de diffusion des utilisateurs
de dbi ont ete peu flatteuses, c'est le moins que l'on puisse dire.
Le fait que l'article traite de DBperl au lieu de DBI est un indice
du manque de fraicheur de l'information.
Cependant, cette reference est donnee par soucis d'exhaustivite.
``The Perl5 Database Interface''
Cette reference est celle d'un livre a ecrire par Alligator Descartes
(pour lui, c'est moi) publie par O'Reilly et Associes a paraitre
cet hiver.
La table des matieres de ce livre devrait contenir :
* Introduction
+ Les Bases de Donnees
+ CGI / WWW
+ perl
* Concepts de Base des Bases de donnees
+ Types de Bases de Donnees
o Flat File
o AnyDBM
o RDBMS
+ Utiliser Quelle Base de Donnees, pour Quoi faire...
* SQL
+ Pourquoi SQL?
+ Structuration de l'Information dans les Bases de Donnees
+ Extraction des Donnees d'une Base de Donnees
+ Manipulation des Donnees et des Structures de Donnees
* Architecture DBI
* Programmation avec DBI
+ Initialisation DBI
+ Identifiants
o Identifiants de pilotes
o Identifiants de bases de donnees
o Identifiants d'instructions
+ Connexion and Deconnexion
+ Gestion des Erreurs
+ Emission de Requetes Simples
+ Execution d'Instructions Atomiques
+ Instructions MetaDonnees
+ Instruction plus dans le style perl
+ Liaison
+ Gestion des Transactions
+ Methodes utilitaires
+ Gestion des Attributs et des Variables Dynamiques
* DBI et ODBC
* Les Pilotes de Bases de Donnees
+ DBD::Oracle et oraperl
+ DBD::Informix et isqlperl
+ DBD::mSQL et Msqlperl
* Etude de Cas
+ DBI et le WWW
+ Migration des Donnees et Stockage
+ Logiciel d'Administration
* Appendice: API Reference / Specification
* Appendice: Ressources
Fichiers LISEZMOI
Les fichiers LISEZMOI fournis avec chaque pilote contiennent de temps
en temps quelques informations utiles (non, vraiment! ) pouvant etre
pertinentes pour l'utilisateur.
S'il vous plait, lisez-les. Cela rendra nos pauvres existences plus
supportables. On peut toutes les trouver depuis la page WWW DBI
principale a :
http://www.hermetica.com/technologia/perl/DBI
Listes de diffusion
Il y a trois listes de diffusion pour DBI gerees par Ted Lemon.
On peut s'inscrire a toutes et resilier cette inscription a
travers le World Wide Web a l'URL :
http://www.fugue.com/dbi
Les listes ou les utilisateurs peuvent participer sont:
dbi-announce
Cette liste de diffusion est reservee uniquement aux annonces.
Tres peu de trafic. Les annonces sont generalement postees
sur la page WWW DBI principale.
Si vous n'arrivez pas a utiliser le formulaire sur la page WWW
indiquee ci-dessus, inscrivez-vous a cette liste de la maniere
suivante :
Email: 'dbi-announce-request@fugue.com' avec le mot 'subscribe'
dans le corps du message.
dbi-dev
Cette liste de diffusion est a l'usage des developpeurs pour discuter
des idees et des concepts de l'interface DBI, API et des mecanismes
des pilotes. Seulement utiles pour les developpeurs et les personnes
interessees. Trafic faible.
Si vous n'arrivez pas a utiliser le formulaire sur la page WWW
indiquee ci-dessus, inscrivez-vous a cette liste de la maniere
suivante :
Email: 'dbi-dev-request@fugue.com' with a message body of
'subscribe'
dbi-users
Cette liste de diffusion est un lieu de discussion generale utilisee
pour les rapports d'erreurs, la discussion sur differents problemes
et des demandes de renseignement d'interet general. Trafic moyen.
Si vous n'arrivez pas a utiliser le formulaire sur la page WWW
indiquee ci-dessus, inscrivez-vous a cette liste de la maniere
suivante :
Email: 'dbi-users-request@fugue.com' with a message body of
'subscribe'
Archives des Listes de Diffusion
Archives des Listes de Diffusion US
http://outside.organic.com/mail-archives/dbi-users/
Cette archive, avec recherches par hyper-liens, de ces trois listes de
diffusion, avec un peu du trafic beaucoup plus ancien a ete mis en place
pour permettre une recherche par les utilisateurs.
Archives des Listes de Diffusion Europeennes
http://www.rosat.mpe-garching.mpg.de/mailing-lists/PerlDB-Interest
Identique a l'archive US ci-dessus.
----------------------------------------------------------------------------
Problemes de compilation
----------------------------------------------------------------------------
2.1. Problemes de compilation ou "Il echoue aux tests!"
En premier lieu, consulter la documentation en ligne concernant ce module, que ce
soit DBI lui-meme ou un module DBD, et verifier que ce n'est pas un probleme de
compilation connu pour votre architecture. On peut trouver ces documents a :
http://www.hermetica.com/technologia/perl/DBI
Si c'est un probleme connu, vous devrez probablement attendre qu'il ait ete corrige.
Si vraiment vous avez besoin d'une solution, essayez l'une des solutions suivantes :
Essayez de le corriger vous meme
Cette technique n'est generalement par recommandee aux craintifs. Si vous pensez
que vous y etes arrive, alors, envoyer un fichier patch (context diff ) a
l'auteur en expliquant les points suivants :
o Quel etait le probleme, et, si possible, des jeux d'essai.
o Ce que vous avez du faire pour le corriger. Assurez vous que vous
n'oubliez rien.
o Donnez des informations concernant la Plate-forme utilisee, les versions :
de la Base de Donnees, de Perl, du module et de DBI.
Envoyez un Email a l'auteur SANS RALER!
S'il vous plait, postez votre email a l'adresse indiquee dans les pages
WWW du pilote avec lequel vous avez rencontre des problemes. Ne pas poster
directement a une adresse que vous connaissez a moins qu'elle ne
corresponde a l'une de celles qui sont indiquees.
Nous avons un vrai travail a faire, et nous devons consulter les listes de
diffusion traitant des problemes rencontres. De plus nous ne pouvons pas
forcement avoir acces a et de ce fait vous apporter
une quelconque assistance!
Desole de vous paraitre dur, mais c'est comme cela!
Cependant, vous pouvez tomber sur l'un de ces genies creatifs, qui, a 3
heures du matin resoudra votre probleme et vous fournira une rustine en 5
minutes. L'ambiance dans le cercle DBI est que nous apprecions de
connaitre les problemes des utilisateurs puisque nous travaillons dans
le meme environnement.
Si vous envisagez d'envoyer un Email a un auteur, essayez de fournir le
plus d'informations possible, i.e. :
o TOUS les renseignements provenant du fichier LISEZMOI du module
posant probleme.
Je dis bien TOUS. Nous n'ajoutons pas de lignes dans la documentation
pour le plaisir, ou pour que les fichiers LISEZMOI se conforment
a une quelconque norme de taille.
o Si vous disposez d'un vidage memoire, essayer de generer une trace du
contenu de la pile (stack) a partir du vidage memoire (core dump) en
utilisant le module Devel::CoreStack. L'envoyer egalement. On peut
trouver le module Devel::CoreStack sur CPAN a :
http://www.perl.com/cgi-bin/cpan_mod?module=Devel::CoreStack
o Les numeros de version du Module, de perl, des jeux d'essai, du
systeme d'exploitation ainsi que tout autre information pertinente.
Souvenez-vous que, plus vous nous enverrez d'informations plus vite
nous pourrons resoudre le probleme. Si vous n'envoyez rien, n'attendez
rien en retour.
Envoyez un Email dans la liste de diffusion des utilisateurs de dbi
C'est en general une idee astucieuse de rapporter les problemes
rencontres dans les listes de diffusion. Les auteurs lisent tous
ces listes d'une part et d'autre part vous ne perdez rien a le faire,
donc, faites-le.
----------------------------------------------------------------------------
Questions de Plates-formes et de Pilotes
----------------------------------------------------------------------------
3.1 Quelle est la difference entre ODBC et DBI?
Ca, c'est une bonne question! Reponse a rediger de maniere detaillee!
----------------------------------------------------------------------------
3.2 DBI est-il supporte sur les plates-formes Windows 95 / NT ?
Finalement, oui! Jeff Urlwin s'est employe avec constance a porter DBI et DBD::Oracle
sur ces plates-formes, et, depuis la disponibilite d'un perl plus stable et d'un
portage de MakeMaker, le projet a progresse a pas de geant.
Les portages de DBI et de DBD::Oracle pour Win32 ports font maintenant partie
integrante de DBI, donc, la recuperation d'une version de DBI superieure a 0.81 doit
donner satisfaction. Pour ce qui est des rustines necessaires pour DBD::Oracle,
veuillez lire la page d'information de portage pour Win32 a :
http://www.hermetica.com/technologia/perl/DBI/win32
----------------------------------------------------------------------------
3.3 Puis-je acceder aux bases de donnees Microsoft Access ou SQL-Server avec DBI?
Contribution de Tim Bunce et Jeff Urlwin
Il existe une couche logicielle d'emulation experimentale pour le module Win32::ODBC
fournie avec DBI-0.79 ( et suivants ). Elle s'appelle DBI::W32ODBC et est, pour le
moment, minimale. Vous aurez besoin du module Win32::ODBC disponible a :
http://www.roth.net
Etant donne son etat, les rapports de problemes, sans correction, ont de bonnes
chances d'etre ignores. Vous aurez egalement besoin du patch kit Win32 DBI tel qu'il
est fourni par Jeff Urlwin. Pour trouver l'endroit ou il est disponible, lire la
reponse a la question precedente.
Jeff Urlwin fournit actuellement un gros travail sur la couche logicielle ODBC.
Pour en revenir a la question initiale, theoriquement, oui, on peut acceder aux bases
de donnees Microsoft Access ou SQL-Server avec DBI via ODBC!
----------------------------------------------------------------------------
3.4 Existe-t-il in DBD pour ?
Est-il cite dans la liste des pilotes DBI ?
http://www.hermetica.com/technologia/perl/DBI/DBD
Sinon, non. L'absence complete d'un pilote pour un SGBD donne dans cette page
signifie que personne n'a manifeste l'intention d'y travailler.
Comme corollaire a l'affirmation ci-dessus, cela signifie que si vous voyez une
annonce pour un pilote qui n'est pas dans cette page, il y a une bonne chance que ce
soit reellement un pilote DBI, et qu'il puisse ne pas respecter les specifications.
Par consequent, les questions pour des problemes concernant ce code ne doivent
pas etre posees dans les listes de diffusion DBI.
----------------------------------------------------------------------------
3.5 Qu'est-ce que DBM? Et pourquoi dois-je utiliser DBI a sa place?
Extrait de ``DBI - L'Interface de Base de Donnees pour Perl 5'' :
``A l'origine UNIX etait bienheureux avec sa "Base de Donnees" rustique reposant
sur des fichiers, nommee systeme dbm. Avec dbm vous enregistrez les donnees dans des
fichiers et les retrouvez rapidement. Cependant, il souffre de serieux
inconvenients.
Verrouillage des fichiers
Les systemes dbm ne permettent par un verrouillage particulierement
robuste des fichiers, de meme qu'il n'y a pas de possibilite de
corriger les problemes survenants lors d'ecritures [ dans la base
de donnees ] simultanees.
Structures de Donnees Arbitraires
Les systemes dbm permettent seulement une simple structure de donnees
fixe: paires cle-valeur. Cette valeur peut etre un objet complexe,
tel qu'une structure [ C ], mais la cle doit etre unique. Ce fut une
grande limitation dans l'utilite des systemes dbm.
Cependant, les systemes dbm continuent a offrir des fonctions utiles pour les
utilisateurs ayant des ensembles de donnees simples et des ressources limitees,
puisqu'ils sont rapides, robustes et extremement bien testes. Les modules Perl
pour acceder aux systemes dbm font maintenant partie integrante de la
distribution Perl via le module AnyDBM_File.''
Pour resumer, DBM est une solution parfaitement satisfaisante pour les bases de
donnees essentiellement en lecture seule, ou pour des ensembles de donnees simples
et reduits. Toutefois, pour des ensembles de donnees plus importants, sans
mentionner un verrouillage des transactions robuste, on recommandera aux utilisateurs
de preferer DBI.
----------------------------------------------------------------------------
3.6 Quand mSQL-2 sera t'il supporte?
De meme que pour DBD::mSQL-0.61, il y a eu un support pour mSQL-2. Cependant, il
n'y a encore aucun reel support pour les nouvelles methodes func, concernant les
index, ajoutees a la bibliotheque de base mSQL. Celles-ci seront prochainement
disponibles et seront accessibles a DBD::mSQL au travers de methodes func privees.
Vous pouvez obtenir plus d'informations concernant ces methodes func privees dans
le POD DBD::mSQL en tapant :
perldoc DBD::mSQL
a condition d'avoir une installation correcte de DBD::mSQL.
----------------------------------------------------------------------------
3.7 Quel systeme de gestion de base de donnees me recommandez vous?
C'est un sujet particulierement epineux pour lequel une reponse objective est
delicate dans la mesure ou, chaque ensemble de donnees, chaque usage et chaque
configuration du systeme est different d'un utilisateur a l'autre.
Du point de vue de l'auteur, si l'ensemble de donnees est relativement petit, donnant
des tables de moins de 1 million de lignes, et qu'il y ait moins de 1000 tables dans
une base de donnees, alors mSQL est une solution parfaitement acceptable. Ce SGBD
est extremement bon marche, est merveilleusement robuste et beneficie d'un excellent
support. Des informations complementaires sont disponibles sur le site WWW Hughes
Technology a :
http://www.hughes.com.au
Si l'ensemble de donnees entraine des tables de plus de 1 million de lignes ou plus
de 1000 tables, ou si vous disposez de, soit plus d'argent, soit de machines plus
puissantes, je vous recommanderai le RDBMS (SGBDR en francais) Oracle7. Le site WWW
Oracle's est une excellente source d'information complementaire.
http://www.oracle.com
Informix est un autre RDBMS de haut niveau qu'il faut envisager. Il existe plusieurs
differences entre Oracle et Informix qui sont trop complexes pour etre detaillees
dans ce document. On trouvera l'information sur Informix sur leur site WWW a :
http://www.informix.com
En cas d'utilisation dans des applications en frontal WWW, mSQL peut etre un
meilleur choix du fait de ses temps de connexion courts entre le script CGI et le
SGBD que Oracle RDBMS qui, a chaque connexion, reclame plus de ressources. mSQL est
moins gourmand en ressources et plus rapide.
Ce point de vue n'est pas forcement partage par tout le monde et n'est pas sponsorise
ou dicte par une quelconque societe. Il est donne tel quel.
----------------------------------------------------------------------------
3.8 Est-ce que est supporte par DBI?
Si l'on suppose que la fonctionnalite en question n'est pas, en standard, specifique
d'un SGBD, alors la reponse sera non.
DBI represente un API qui doit fonctionner avec la plupart des SGBD, et n'a pas de
fonctionnalite specifique a un SGDB particulier.
Cependant, les auteurs d'un pilote peuvent, s'ils le desirent, ajouter une
fonctionnalite specifique a un SGBD a travers les methodes func definies dans l'API
DBI. Les developpeurs de Scripts doivent noter que l'utilisation de cette
fonctionnalite au travers de ces methodes func a de bonnes chances d'en sacrifier la
portabilite entre les differents SGDB.
----------------------------------------------------------------------------
Questions de Programmation
----------------------------------------------------------------------------
4.1 Est-ce que DBI est d'une quelconque utilite pour la programmation CGI?
En un mot, oui! DBI est extremement utile pour la programmation CGI! En fait, je
serais tente de repondre que la programmation CGI est une des deux principales
utilisation de DBI.
DBI confere aux programmeurs CGI la possibilite d'offrir des base de donnees WWW a
leurs utilisateurs, ce qui donne a ces utilisateurs la possibilite d'utiliser de
grandes quantites de donnees bien organisees. DBI donne aussi la possibilite , si un
site recoit un trafic trop important pour les performances du serveur, d'ameliorer
ce serveur de base de donnees de facon transparente, sans modifier les scripts CGI.
----------------------------------------------------------------------------
4.2 Comment puis-je obtenir un temps de connexion plus rapide avec DBD::Oracle et CGI CGI?
Contribution de John D. Groenveld
Le serveur httpd Apache maintient un ensemble de processus fils httpd pour servir les
requetes clients.
En utilisant le module mod_perl Apache de Doug MacEachern, l'interpreteur perl est
inclus dans le processus fils httpd. Les modules CGI, DBI, et vos autres modules
favoris peuvent etre charges au lancement de chaque processus fils. Ces modules ne
seront pas recharges a moins d'etre modifies sur disque.
Pour de plus amples informations sur Apache, consultez le site WWW du Projet Apache
a :
http://www.apache.org
Le module mod_perl peut etre recupere de CPAN via :
http://www.perl.com/cgi-bin/cpan_mod?module=mod_perl
----------------------------------------------------------------------------
4.3 Comment puis-je obtenir une connexion persistante avec DBI et CGI?
Contribution de by John D. Groenveld
En utilisant le module Apache::DBI de Edmund Mergl, les connexions a la base de
donnees sont enregistrees dans une table avec chacun des processus httpd fils. Si
votre application utilise une base de donnees simple utilisateur, cette connexion
peut etre lancee avec chaque processus fils. Actuellement, les connexions a la base
de donnees ne peuvent pas etre partagees entre processus httpd fils.
Apache::DBI peut etre telecharge de CPAN via :
http://www.perl.com/cgi-bin/cpan_mod?module=Apache::DBI
----------------------------------------------------------------------------
4.4 ``Quand je lance un script perl de la ligne de commande, ca marche, mais, quand
je le lance sous httpd, ca echoue!" Pourquoi?
Fondamentalement, il y a une bonne chance que cela provienne du fait que
l'utilisateur a partir duquel vous avez lance la ligne de commande a
un ensemble de variables d'environnement correctement configure, ce sont, dans la
cas de DBD::Oracle, des variables telles que $ORACLE_HOME, $ORACLE_SID or TWO_TASK.
Le processus httpd s'execute habituellement sous un utilisateur id ne correspondant
pas a un utilisateur, ce qui implique qu'il n'y a pas d'environnement configure.
Tous scripts essayant de s'executer dans ces circonstances echoueront.
Pour resoudre ce probleme, initialisez l'environnement de votre base de donnees dans
un bloc BEGIN ( ) en tete de votre script. Ceci devrait resoudre votre probleme.
De meme, vous devriez regarder votre fichier registre d'erreurs pour y trouver des
indices, ainsi que les guides ``Idiot's Guide To Solving Perl / CGI Problems'' et
``Perl CGIProgramming FAQ'' pour avoir des informations complementaires. Il est peu
probable que ce probleme concerne DBI.
Le guide ``Idiot's Guide To Solving Perl / CGI Problems'' peut etre trouve a :
http://www.perl.com/perl/faq/index.html
ainsi que ``Perl CGI Programming FAQ''. Lisez ces DEUX documents tres soigneusement!
----------------------------------------------------------------------------
5.1 Puis-je faire de l'execution en parallele avec DBI?
A la date de ce document ( voir en tete ), non. perl ne permet pas l'execution en
parallele. Cependant, l'execution en parallele doit faire partie de la distribution
perl de base a compter de la version 5.005, ce qui sous-entend que le support de
l'execution en parallele pour DBI devrait suivre rapidement.
Pour quelques exemples de code OCI pour Oracle ayant des instructions SELECT avec
execution en parallele, voir :
http://www.hermetica.com/technologia/oracle/oci/orathreads.tar.gz
----------------------------------------------------------------------------
5.2 Comment manipuler des donnees BLOB avec DBI?
A ecrire.
----------------------------------------------------------------------------
5.3 Comment puis-je invoquer des procedures enregistrees avec DBI?
En supposant que vous avez cree une procedure enregistree a l'interieur de la base
de donnees cible, eg, une base de donnees Oracle, vous pouvez utiliser $dbh->do pour
executer immediatement cette procedure. Par exemple,
$dbh->do( "BEGIN someProcedure END" );
----------------------------------------------------------------------------
5.4 Comment puis-je recuperer les valeurs de retour de procedures enregistrees avec DBI?
Contribution de Jeff Urlwin
$sth = $dbh->prepare( "BEGIN foo(:1, :2, :3); END;" );
$sth->bind_param(1, $a);
$sth->bind_param_inout(2, \$path, 2000);
$sth->bind_param_inout(3, \$success, 2000);
$sth->execute;
N'oubliez pas d'effectuer un test d'erreur, strict!
----------------------------------------------------------------------------
5.5 Comment puis-je creer ou supprimer une base de donnees avec DBI?
La creation et la suppression de bases de donnees sont des concepts qui sont
beaucoup trop abstraits pour etre supportes par DBI. Par exemple, Oracle ne supporte
pas le concept de detruire une base de donnees du tout! Ainsi, dans Oracle, le
serveur de base de donnees est essentiellement la base de donnees elle-meme alors
que dans mSQL, le processus serveur s'execute tranquillement sans aucune base de
donnees creee. C'est un probleme trop heterogene pour s'y attaquer.
Quelques pilotes, cependant, supportent la creation et la suppression de bases de
donnees a travers des methodes func privees. Il vous faut regarder dans la
documentation des pilotes que vous utilisez pour verifier s'ils supportent de tels
mecanismes.
----------------------------------------------------------------------------
5.6 Comment puis-je valider ou annuler une instruction avec DBI?
A ecrire.
----------------------------------------------------------------------------
5.7 Comment les valeurs NULL sont-elles prises en compte par DBI?
Les valeurs NULL dans DBI sont traitees comme la valeur undef. Des NULLs peuvent
etre inseres dans les bases de donnees en tant que NULL, par exemple :
$rv =
$dbh->do( "INSERT INTO table VALUES( NULL )" );
mais lors d'une interrogation, les NULLs devront etre testes comme des undef. C'est
un standard pour tous les pilotes.
----------------------------------------------------------------------------
5.8 Qu'est-ce que c'est que ces histoires de methodes func?
Une methode func est definie a l'interieur de DBI comme etant un point d'entree pour
une fonctionnalite d'une base de donnees specifique, eg, la possibilite de creer ou
supprimer des bases de donnees. L'invocation de ces methodes specifiques aux pilotes
est simple. Par exemple, pour invoquer une methode createDatabase qui n'a qu'un seul
argument, on ecrira :
$rv =
$dbh->func( 'argument', 'createDatabase' );
Les developpeurs de logiciels doivent cependant noter que ces methodes func ne sont
pas portables entre SGDB.
----------------------------------------------------------------------------
Assistance et formation
L'interface aux SGBD Perl5 est un logiciel LIBRE. IL EST DISTRIBUE SANS GARANTIE
D'AUCUNE SORTE.
Cependant, quelques organisations fournissent soit une assistance technique soit des
programmes de formation pour DBI. L'auteur de ce document n'a aucune information sur
la qualite de ces services (le traducteur non plus!). Les liens ci-dessous ne sont
indiques qu'a titre de reference.
----------------------------------------------------------------------------
Assistance technique
The Perl Clinic
The Perl Clinic peut mettre en place des contrats commerciaux d'assistance pour
Perl, DBI, DBD::Oracle et Oraperl. Cette assistance est effectuee par la compagnie
pour laquelle Tim Bunce, auteur de DBI, travaille. Pour des informations
complementaires sur leurs services, veuillez voir :
http://www.perl.co.uk/tpc
----------------------------------------------------------------------------
Formation
Aucun programme de formation n'est connu a ce jour.
----------------------------------------------------------------------------
Autres References
Dans cette section, on trouvera des liens WWW divers pouvant presenter un interet
pour les utilisateurs de DBI. Ils n'ont pas ete verifies et peuvent mener a des
sites inconnus ou a des documents inexistants.
http://www-ccs.cs.umass.edu/db.html
http://www.odmg.org/odmg93/updates_dbarry.html
http://www.jcc.com/sql_stnd.html
----------------------------------------------------------------------------
AUTEUR
Alligator Descartes
----------------------------------------------------------------------------
COPYRIGHT
Ce document est Copyright (c)1994-1997 Alligator Descartes, avec des parties
Copyright (c)1994-1997 leurs auteurs originaux. Ce module est publie selon les
conditions d'une licence 'Artistique' que vous pouvez trouver dans la distribution
de perl.
Ce document est Copyright (c)1997 Alligator Descartes. Tous droits reserves.
La permission de distribuer ce document, en entier ou en partie, via email,
Usenet, archives ftp ou http est accordee a condition que ce soit gratuitement, on a
fait un effort raisonnable pour utiliser les versions les plus actuelles et tous les
avis d'attribution et de copyright ont ete maintenus ( Se referer aux sections AUTEUR
et COPYRIGHT ). Les demandes pour d'autres droits de distribution, y compris
l'incorporation dans des produits commerciaux, tels que livres, articles de magazines
ou CD-ROMs doit etre effectuee aupres de Alligator Descartes
.
----------------------------------------------------------------------------
(c) 1995-97 Hermetica
Alligator Descartes - Hermetica
1144.. PPGGAACCCCEESSSS -- UUnn GGUUII ppoouurr llaa ggeessttiioonn ddeePPoossttggrreeSSQQLL
Il est deja inclus dans la distribution de PostgreSQL. Pour une copie
plus recente, vous pouvez acceder au site web site
+o
+o Si vous avez des commentaires, des suggestions pour des
ameliorations, n'hesitez pas a envoyer un courrier electronique a :
teo@flex.ro
Voici ce que dit la page d'accueil de pgaccess :
PgAccess - une interface Tcl/Tk pour PostgreSQL
La derniere version de PgAccess est 0.62 , du Samedi 25 Octobre 1997
Je pense qu'il y a eu quelques problemes au chargement de la bibliotheque libpgtcl.
Je vous invite a lire la section speciale concernant libpgtcl
Que fait PgAccess maintenant!
Voici quelques images des fenetres de PgAccess : Fenetre principale, createur
de tables, vue de table (interrogation), createur visuel d'interrogation .
Tables
- Ouverture de tables pour la visualisation, 200 enregistrements maximum
( modifiable dans le menu des preferences )
- redimensionnement d'une colonne en tirant la ligne verticale de la grille
( plus pratique a realiser a l'interieur meme de la table que dans l'en-tete)
- texte encadre dans les cellules - disposition enregistree pour chacune des tables)
- importation/exportation vers des fichiers externes (SDF,CSV)
- possibilite de filtres (filtre de saisie, tel que (prix>3.14)
- possibilites de tri (saisie manuelle de(s) champ(s) a trier)
- edition en ligne
- assistant generateur de table ameliore
- edition de champ amelioree
Requetes
- definition, edition et enregistrement de "requetes definies par l'utilisateur"
- enregistrement de requetes en tant que vues
- execution des requetes
- visualisation des resultats de requetes de type select
- suppression et changement de nom de requete
- NOUVEAU !!! Createur visuel de requetes avec possibilites de "glisser/deposer".
Pour tous ceux d'entre vous qui ont l'extension pour Netscape Navigator de Tcl/Tk
installee, vous pouvez le voir au travail en cliquant ici
Sequences
- definition de sequences, ainsi que leurs suppression et inspection
Fonctions
- definition, inspection et suppression de fonctions en langage SQL
Sur la liste A FAIRE!
- conception des tables (ajout de nouveaux champs, changement de nom, etc.)
- definition de fonction
- generateur de rapport
- langage de script de base
Informations complementaires concernant libgtcl
Vous aurez egalement besoin de la bibliotheque d'interface de PostgreSQL a Tcl,
disponible comme moduleTcl/Tk chargeable. Son nom est libpgtcl et le source est
situe dans le repertoire PostgreSQL /src/interfaces/libpgtcl. Precisement, vous
aurez besoin d'une bibliotheque libpgtcl qui soit "chargeable" a partir de Tcl/Tk.
Ce qui est techniquement different d'un fichier objet chargeable PostgreSQL
ordinaire, car libpgtcl est constituee d'un ensemble de fichiers objets. Sous Linux,
on l'appelle libpgtcl.so. Vous pouvez telecharger a partir d'ici une version deja
compilee pour les systemes Linux i386. La seule chose a faire est de copier
libpgtcl.so dans le repertoire bibliotheque systeme (/usr/lib) et c'est tout. Une
solution possible est de supprimer dans le source la ligne contenant load libpgtcl.so
et de charger pgaccess.tcl non pas avec wish, mais avec pgwish (ou wishpg) le wish
qui a ete lie avec la bibliotheque libpgtcl!
De toute maniere, l'application devrait fonctionner sans problemes
1155.. OOuuttiill WWiinnddoowwss iinntteerraaccttiiff ddee ggeenneerraattiioonn ddee rreeqquueettee ppoouurr PPoossttggrreeSSQQLL
("Windows Interactive Query Tool" WISQL ou MPSQL) Il est identique au
serveur de requete SQL de Microsoft WISQL! Il dispose d'un GUI
agreable et d'un historique des commandes. Vous pouvez utiliser le
coupe/colle ainsi que d'autres fonctionnalites sympathiques pour
accroitre votre productivite.
+o
+o Email : keidav@whidbey.com
+o in file tcl_syb/wisql.html
+o
+o Email : de@ucolick.org
1166.. OOuuttiill iinntteerraaccttiiff ddee ggeenneerraattiioonn ddee rreeqquueettee ppoouurr PPoossttggrreeSSQQLL -- IISSQQLL
ISQL est destine aux terminaux fonctionnants en mode ligne de
commande. C'est inclus dans la distribution et nomme PSQL. Il est
tres similaire a Sybase ISQL, et a Oracle SQLplus. A l'invite unix
tapez la commande 'psql' qui en retour vous affichera le caractere
d'attente de commande: psql> . Tapez /h pour obtenir de l'aide sur les
commandes utilisables. C'est tres convivial et d'utilisation facile.
C'est aussi tres utile pour ecrire des scripts pour les interpreteurs
de commandes Bourne, Korn et C-shells.
1177.. MMiissee eenn ppllaaccee ddee pplluussiieeuurrss mmaacchhiinneess PPoossttggrreeSSQQLL aavveecc uunn sseeuull mmoonnii--
tteeuurr
Vous pouvez empiler plusieurs cpu et les connecter a un unique
moniteur en utilisant un commutateur pour choisir la connexion avec
une unite centrale particuliere. Ce qui economise de l'espace et evite
l'utilisation de plusieurs ecrans(200 US dollars), claviers(60
dollars) et mulots(50 dollars) et evite aussi pas mal de pagaille.
Veuillez consulter ces sites :
+o (120 dollars/PC 8
ports) qui propose 'Server Switches' and 'Video only switches'
+o
+o
+o
Utilisez le moteur de recherche yahoo pour trouver d'autres compagnies
en utilisant la cle de recherche 'Server Switches'.
On trouvera ci-dessous un extrait du catalogue de networktechnic Inc
Commandez maintenant, appelez le 800-742-8324 (appel gratuit a partir des USA)
Pour recevoir notre catalogue, veuillez envoyer votre adresse par courrier electronique a :
sales@networktechinc.com
PILOTEZ PLUSIEURS PC's avec un seul clavier, ecran et mulot
Ces commutateurs electroniques permettent de piloter jusqu'a 64 PC's avec un unique
clavier, ecran et mulot. Son microprocesseur interne simule la presence constante du
clavier, de l'ecran et du mulot pour chacun des PC's connectes.
Fonctionnalites et Applications
* Clavier, face avant ou commande a distance
* utilisation de connecteurs de mulots 9 broches D Serial ou 6 broches miniDIN
* utilisation de connecteurs de clavier 5 broches DIN ou 6 broches miniDIN
* resolution video 1600x1200 sans degradation
* Utilisation de cables standards
* Boitier pour bureau ou pour montage en rack
Specifications - Clavier
* Tous les connecteurs dont femelles
* 5 broches DIN ou 6 broches miniDIN
* Permettent un redemarrage (boot) materiel ou logiciel de tous les PC's a chaque instant
Controles - Boutons en face avant
* Le toucher d'un bouton permet la connexion au PC correspondant
* L'appui sur un bouton pendant plus de 0.5 secondes entraine le fonctionnement dans
les modes SCAN, BROADCAST ou COMMAND
* Les LEDs en face avant indiquent le mode d'operation du clavier
* L'appui sur CTRL+* entraine le fonctionnement en mode COMMAND
* Les modes SCAN, BROADCAST ou COMMAND sont disponibles
Mulot
* 9 broches D serie
o Le commutateur NTI emule le mulot Microsoft serie pour tous les PC's
o 9 broches D male pour mulot
o 9 broches D femelle pour PC's
* 6 broches miniDIN
o Le commutateur NTI emule le mulot IBM PS/2 pour tous les PC's
o Tous les connecteurs sont femelles
Par cable, a distance
* Optionnel--doit etre acquis separement
* Fonctionnement identique a celui "Boutons en face avant"
Information technique
* Demander le manuel technique MAN025
Moniteur (ecran) - VGA
* La bande passante est de 150 MHz
* Resolution 1600X1200 sans degradation
* Tous les connecteurs sont des connecteurs femelles
Alimentation
* 110 ou 220 VAC a 50 ou 60 Hz
1188.. OOuuttiill SSyysstteemmee ddee ssuuiivvii ddee PPrroobblleemmee//PPrroojjeett ppoouurr PPoossttggrreeSSQQLL
Se trouve a l'url :
+o
1199.. CCoonnvveerrssiioonn ddee ffiicchhiieerrss ddbbaassee ddbbff eenn ffiicchhiieerrss PPoossttggrreeSSQQLL
Le programme dbf2msql fonctionne parfaitement avec mSQL et PostgreSQL.
Vous pouvez le trouver a
+o
+o
Ce programme a ete ecrit par Maarten Boekhold, Faculty of Electrical
Engineering TU Delft, NL Computer Architecture and Digital Technique
section M.Boekhold@et.tudelft.nl
Vous pouvez egalement utiliser une methode python pour lire des
fichiers dbf et les charger dans une base de donnees postgres.
+o Voir
2200.. PPoossttggrreeSSQQLL 44GGLL ppoouurr lleess aapppplliiccaattiioonnss ddee bbaasseess ddee ddoonnnneeeess wweebb -- LLee
ssyysstteemmee ddee ddeevveellooppppeemmeenntt AAppppGGEENN
AppGEN peut etre telecharge de
.
On trouvera ci-dessous un extrait de la page d'accueil de AppGEN :-
AppGEN est un langage de haut niveau de la quatrieme generation ainsi
qu'un generateur d'application pour produire des applications
destinees au World Wide Web (WWW). Ces applications sont typiquement
utilisees a travers l'internet ou dans le cadre d'un reseau intranet
d'entreprise. Les applications AppGEN sont implantees en scripts C
respectants le standard Common Gateway Interface (CGI) utilise par la
plupart des serveurs Web.
Pour utiliser AppGEN il vous faudra disposer de :-
PostgresSQL, systeme de gestion de base de donnees relationnel
Un serveur web compatible CGI tel que HTTPD du NCSA
D'un compilateur ansi C tel que GCC
AppGEN est constitue des executables Unix (Linux) suivants :-
+o defgen, qui produit une application cadre, de base, a partir de la
structure logique des donnees. Ces applications sont capables
d'ajouter, de mettre a jour, de supprimer et de rechercher les
enregistrements d'une base de donnees tout en conservant
automatiquement l'integrite referentielle de cette base.
+o appgen, le compilateur AppGEN qui compile le code source appgen en
code source C CGI executable et en documents formates HTML prets
pour leur deploiement sur un serveur web.
+o dbf2sql, un utilitaire de conversion de fichiers .dbf compatibles
dBase III en scripts SQL executables. Ce qui permet de migrer les
donnees stockees dans la plupart des bases de donnees DOS/Windows
vers un serveur SQL tel que PostgresSQL.
+o De plus, AppGEN comprend un ensemble de documents HTML , de
fichiers GIF et d'applets Java qui sont utilises, a l'execution,
par le systeme. Et, naturellement, comme pour tout bon logiciel, la
totalite du code source est fournie.
L'auteur, Andrew Whaley, peut etre conctacte a
andrew@arthur.smuht.nwest.nhs.uk tous les commentaires ou suggestions
concernant ce logiciel seront les bienvenus.
2211.. OOuuttiill ddee CCoonncceeppttiioonn//IImmpplleemmeennttaattiioonn ppoouurr SSGGBBDD WWeebb ppoouurr PPoossttggrreeSSQQLL
-- EEAARRPP
dans le repertoire 'pub/unix/earp'.
On trouvera ci-dessous un extrait de la page d'accueil de EARP:-
Le "Programme de Reponse Facilement Ajustable" ("Easily Adjustable
Response Program" - EARP) cree par David Dougherty
2211..11.. EEAARRPP,, cc''eesstt qquuooii??
EARP est un outil de Conception/Implementation pour Base De Donnees
Web, realise par-dessus le systeme de gestion de base de donnees
Postgres95. Ses fonctionnalites comprennent:
+o Un systeme de conception visuel.
+o Une interface d'envoi de courrier electronique. (pouvant prendre en
charge le courrier entrant et sortant)
+o Un Mecanisme de Securite ameliore.
+o Un pilote cgi.
2211..22.. IImmppllaannttaattiioonn
L'implantation principale de EARP consiste en un binaire CGI qui
s'execute sous le demon http pour fournir l'acces au serveur de base
de donnees. Tous les outils de conception sont integres dans le
pilote, aucune conception ne se fait sur le web. Les outils eux-memes
requierent un navigateur graphique, la compatibilite des objets concus
avec ces outils est independante de l'implantation, elle ne depend
uniquement que des preferences de conception individuelles.
2211..33.. CCee ddoonntt vvoouuss aavveezz bbeessooiinn ppoouurr ffaaiirree ffoonnccttiioonnnneerr EEAARRPP
EARP est sense fonctionner sur une grande variete de plates-formes
avec peu de modifications sinon pas du tout. Les plates-formes pour
lesquelles le fonctionnement est connu sont les suivantes:
+o Solaris 2.5
+o Linux 1.2.13+
+o GNU C++
+o Postgres95 (Version 1.01 / 1.02)
+o netsite server
+o NCSA httpd
+o GNU C++
+o Postgres95 (Version 1.01 / 1.02)
+o NCSA httpd
+o Apache httpd
2211..44.. NNoouuvveelllleess FFllaasshh
La version courante (1.3) de Earp a ete concue au-dessus de la version
de libpq livree avec Postgres95 v1.01/1.02. Si vous utilisez une
version plus recente de Postgres, vous devez vous attendre a ce que le
programme necessite quelques modifications pour fonctionner
correctement. Dans la version de developpement (Earp 2.0), la prise
en charge de libpq est en cours de prise en compte en tant que module,
et de ce fait pourra supporter autant de versions de postgres que nous
aurons de temps pour ecrire ces modules. La version de developpement
est attendue, pour le public, aux alentours du milieu du
printemps(97).
2211..55.. CCoommmmeenntt ffoonnccttiioonnnnee--tt--iill??
Une des fonctionnalites principales de EARP est d'utiliser une
approche orientee objet pour produire des pages html qui s'interfacent
a la base de donnees. La plupart des pages sont constituees de
plusieurs objets. Chaque objet est produit par une sorte d'outil et
recoit un nom, les objets sont alors lies ensembles et appeles en
sequence par l'outil de gestion de pages. Les objets sont egalement
reutilisables a l'interieur de plusieurs pages. Il existe des outils
de base pour HTML, pour les Requetes, pour la saisie dans des
formulaires, le formatage variable des requetes et des objets en
entree, ainsi que pour lier des objets pour en former de nouveaux. On
trouve egalement des outils plus avances tels que l'outil de courrier
electronique et l'outil de creation de requetes en parallele.
La gestion perfectionnee de la securite est une des autres
fonctionnalites de EARP. L'acces aux differentes zones du systeme
EARP peut etre limite par une grande variete de moyens. Pour faciliter
cette securite perfectionnee, EARP effectue des controles a chaque
connexion au systeme, et determine a quels "ids" et "groups"
appartient l'agent qui se connecte. Les acces aux zones sont definis
separement, et la combinaison des deux permet de decider si l'acces a
une certaine zone de Earp est autorise. De plus , tout ce qui est
requis pour realiser les fonctionnalites de securite se trouve dans un
serveur http qui effectue une authentification de l'utilisateur
minimale (ou meilleure).
2211..66.. QQuueellqquueess eexxeemmpplleess eenn lliiggnnee
Partie integrante de l'aide au SGBD ICC Help Database, la Page du
Catalogue de Recherche est un document EARP qui peut executer
plusieurs requetes. Les boites de selection sont generees par le
programme EARP a partir de listes dans la base de donnees.
Comme autre exemple de ce que l'on peut faire avec EARP... vous pouvez
maintenant voir la Liste des Objets de la Base de Donnees d'aide.
La creation de ces trois interfaces m'a pris moins de quinze minutes.
2211..77.. OOuu ppuuiiss--jjee llee ttrroouuvveerr??
EARP est disponible via un ftp anonyme a dans
le repertoire 'pub/unix/earp'. La version courante a la date de
redaction de ce texte est 1.3.1
S'il vous plait, apres avoir recupere et mis en service EARP, envoyez
moi un mot pour en decrire le succes ou les echecs.
2211..88.. DDooccuummeennttaattiioonn ddiissppoonniibbllee
Toute la documentation a ete deplacee a la page index "User Docs and
Tutorials" (Documentation Utilisateur et Cours).
2211..99.. LL''HHiissttooiirree dd''EEAARRPP
Earp 0.1 a demarre en tant que programme a l'automne 1995. Je
travaillais a la realisation d'un livre d'or accessible par le web,
dynamiquement configurable. A ce moment la, il y avait tout un tas de
programmes cgi faisant tous quelque chose de different et d'utile,
agreges par un peu de colle SSI et un peu de programmation c. Je
realisais alors que je faisais beaucoup de travail repetitif, et que
la plupart des choses que je faisais devaient executer dans de
nombreuses fenetres a la fois (netscape, emacs, shell, mail) alors que
la mise au point etait rapidement devenue un cauchemar. A cette
epoque mon ami et patron Don Michaels me contacta. Il etait interesse
par l'automatisation d'une grosse partie de notre support utilisateur
et par la tenue d'une base de donnees gerant l'historique des appels
et des reponses.
Peu de temps apres, j'avais termine le schema initial de ce qui est en
train de devenir rapidement notre base de donnees d'aide. Seulement,
je rechignais a l'idee de construire une base de donnees d'aide a
partir de ce qui etait alors un ensemble tres primitif d'utilitaires.
Lorsque les cours du printemps 96 debuterent, je demarrais quand meme
le projet, principalement sous le coup de l'ennui, mais aussi parce
que j'etais dans un cours d'architecture de base de donnees et que je
voulais m'entrainer un peu les meninges. Peu de temps apres j'avais un
prototype acceptable en etat de marche, ce qui rendit Don tres heureux
car il avait renonce a l'idee de quelqu'un creant une base de donnees
d'aide pour lui. (Le prototype tourne encore sur l'un de mes
serveurs...(juin 96)) Le prototype faisait vraiment quelques choses
tres interessantes, mais en avril, j'etais a nouveau decourage... A
chaque fois que je desirais modifier quelque chose, j'entrais dans un
lent processus de recompilation, ou je tombais sur un fichier texte
particulierement distrayant. Je n'avais aussi aucun moyen d'utiliser
le concept de building block si utile dans EARP... J'ai realise pas
mal d'enormes coupes-colles. Vers la fin de l'annee scolaire je fus
encore une fois decourage sur le deroulement des choses et decidais
que ce dont j'avais besoin, c'etait d'un ensemble d'outils plus
adaptes a ce que je faisais. De plus, je voulais aussi que mon
prototype fonctionne sur un e VRAIE base de donnees relationnelle et
je ne cherissais pas l'idee de recommencer tout ce travail d'acces
codes en dur, de liens, et de methodes de sortie.
J'eus un bref moment de repit, si l'on peut dire. Nous soutenions la
Conference SUNY CIT et j'ai tellement ete occupe pendant une semaine
et demi que je pris du recul par rapport a tout ce que j'avais ecrit
sur le prototype de base de donnee d'aide excepte sur les idees que
j'avais eu quand j'avais ecrit la serie d'utilitaires initiale et que
ce qui m'irritait le plus etait l'etat actuel des choses.
Peu de temps apres la conference, je commencais le prototype de la
version actuelle de EARP(may96), en utilisant le SGBD relationnel
postgres95 comme support. A la mi-juin, le prototype avait evolue en
une suite integree de prototypes d'outils tout a fait seduisante, avec
comme premier avantage de tous tourner en html, et de stocker leurs
donnees d'initialisation dans la base de donnee. La plus grande partie
de la deuxieme moitie de juin fut consacree a la mise au point du code
et a l'utilisation de l'interface.( Pendant ces deux semaines j'ai
accede plus de 5000 fois a notre serveur web.) A la fin juin, la
plupart des bogues importants etaient chasses de EARP, et il y avait
un nombre suffisant d'objets dans la "nouvelle" base de donnees d'aide
que l'on pouvant en faire l'annonce officielle a notre equipe de
support.
A propos, j'ai egalement tenu un journal pendant le developpement de
EARP et Don Michaels et moi presentons un papier decrivant la Base de
Donnees d'Aide a la conference ACM/SIGUCCS a Chicago en Septembre de
cette annee.
2222.. WWWWWW WWeebb iinntteerrffaaccee ppoouurr PPoossttggrreessSSQQLL -- ddbbeennggiinnee
Un extrait de la page d'accueil de dbengine est donne ci-dessous:-
dbengine est une interface Web plug 'n play pour Postgres95 creee par
Ingo Ciechowski
Version 0.82 alpha Documentation au 11/23/96
A propos de dbengine
dbengine est une interface entre le WWW et Postgres95 qui permet un
acces simple a n'importe quelle base de donnees existante en seulement
quelques minutes.
Ce petit programme Perl program est ne apres avoir essaye un tas de
paquetages disponibles tels que AppGen, PHP-FI et d'autres. Alors,
pourquoi ai-je, en quelque sorte, reinvente la roue ?
Eh bien, PHP-FI offre une sorte de langage Perl dans vos documents,
mais pas le vrai Perl alors que AppGen et wdb-p95 necessite la
creation d'un fichier de configuration pour chacune de vos bases de
donnees -- c'est un peu comme si vous deviez apprendre un nouveau
metalangage avant de pouvoir commencer a travailler.
C'est a ce moment que je commencais a me sentir plus a l'aise avec une
petite applet Perl de mon cru... et maintenant mon dbengine est devenu
un outil qui, je pense, est pret a etre partage avec les autres.
A la difference des autres outils, vous n'avez pas a apprendre un
langage de programmation particulier ou un langage de script pour
commencer a utiliser dbengine. De plus, il n'y a pas a creer de
fichier de configuration pour chaque base de donnees, et vous n'avez
donc pas besoin de vous familiariser avec sa structure. Cependant -
au cas ou vous voudriez profiter de toutes les possibilites de
dbengine, ce serait une bonne idee de connaitre le langage Perl.
Le systeme tout entier peut etre configure a l'aide de simples
manipulations d'une base de donnees complementaire qui contient les
informations de detail sur la maniere de visualiser vos acces a la
base de donnees. Vous pouvez meme specifier des Champs Virtuels qui
sont calcules en temps reel avant d'etre affiches a l'ecran.
Licence
dbengine est un logiciel libre selon les memes conditions que Perl.
Lisez sa licence si vous n'etes pas sur de ce que vous pouvez ou ne
pouvez pas faire. La derniere ligne indique que c'est une version plus
gentille et plus moderee que celle de la licence GNU -- une de celle
qui n'affecte pas votre travail si vous extrayez des parties de
dbengine ou du paquetage pour l'inclure dans un produit commercial!
2233.. MMoodduullee AAppaacchhee WWeebbsseerrvveerr ppoouurr PPoossttggrreeSSQQLL -- NNeeooSSoofftt NNeeooWWeebbSSccrriipptt
Apache est un serveur Web bien connu. On trouvera un module
d'interface de PostgreSQL pour le serveur Web Apache a -
Voici, ci-dessous, un extrait de la page d'accueil de NeoWebScript:-
NeoWebScript est un langage de programmation qui permet d'inclure des
programmes simples ou compliques dans des fichiers HTML.
Quand une page HTML contenant un script NeoWebScript est appelee, le
serveur Web , ayant le NeoWebScript active, execute le(s) script(s)
inclus, produisant une page Web dont le contenu, personnalise, a ete
cree par le programme.
NeoWebScript est un moyen rapide, sure, facile a apprendre de creer
des programmes interactifs puissants directement en code HTML dans des
pages Web. Avec NeoWebScript, les compteurs, les formulaires de
courrier electronique, "graffiti walls", livres d'or et suivi des
visiteurs sont aises, meme pour un programmeur debutant. Regardez
comment NeoWebScript se defend bien par rapport a PERL et JavaScript.
NeoWebScript 2.2 vient de sortir! Le 24 juin 1997, NeoSoft rend
disponible la version 2.2 de NeoWebScript 2.2, en l'integrant avec le
nouveau serveur Apache 1.2.0 .
Si vous utilisez un serveur web ayant NeoWebScript installe et que
vous vouliez commencer a l'utiliser, il y a un tout un tas
d'Informations Utilisateur disponibles. Les reponses de bases pour
demarrer se trouvent dans la "FAQ Nouvel Utilisateur". Des
didacticiels vous guident dans l'apprentissage du langage, alors que
des Demonstrations vous apportent des applications toutes faites que
vous pouvez telecharger et adapter. Le document "Commandes et les
Variables" constitue la reference complete du langage, et celui de
Maintenance contient des conseils et des astuces pour vous aider a
resoudre tous les problemes.
Au cas ou vous souhaiteriez installer NeoWebScript sur votre serveur
web, votre webmestre doit lire notre "FAQ Syso" pour se lancer. Le
document "Theorie de fonctionnement" explique comment NeoWebScript
fonctionne, celui d'Installation est un guide pas a pas des operations
a effectuer. Le guide de Gestion traite de la maniere de configurer et
de faire fonctionner le serveur, celui de Tests permet de verifier le
fonctionnement correct de NeoWebScript, enfin, celui de Maintenance
traite des problemes de serveur.
He, attendez une minute direz-vous, combien voulez-vous en
contrepartie d'un tel logiciel, hein? Il n'y a aucuns frais pour
l'utilisation de NeoWebScript-2.2 que ce soit pour votre ISP, votre
intranet, ou votre extranet. Vous pourrez voir un licence complete
quand vous vous enregistrerez pour telecharger le logiciel, mais
l'essentiel est que nous aimerions recevoir la somme monstrueuse de $
99 si vous desirez l'inclure dans votre propre produit ou l'utiliser
dans un serveur commercial (eg. SSL).
NeoWebScript est un module pour le serveur web Apache qui vous permet
d'inclure , en tant que langage de script, pour vos pages web, le
langage de programmation Tcl/Tk . Il a ete invente par Karl
Lehenbauer, Directeur Technique chez NeoSoft, et documente, renforce
et etendu par les programmeurs de NeoSoft et par des redacteurs
techniques.
Le serveur Apache est le serveur web le plus populaire au monde,
totalisant 42 %des 1 044 163 sites interroges lors de l'etude
"Netcraft Web Server" de Mai 1997. La deuxieme plus grande valeur
enregistree concerne les differents serveurs Microsoft, totalisant
legerement plus de 16 %, soit une difference d'environ 270,000
serveurs.
Tcl/Tk est un langage de script puissant, libre et multi-plateformes
developpe par le Dr. John Ousterhout, maintenant "Sun Distinguished
Engineer" (n.d.t. : distinction honorifique de la Cie Sun). Selon ses
propres termes :
"Tcl/Tk permet aux developpeurs de logiciels de realiser un travail
dix fois plus rapidement qu'avec des outils bases sur C ou C++. C'est
aussi un grand langage de synthese permettant de faire travailler
ensemble des applications existantes en les rendant plus graphiques et
orientees Internet."
Avec une communaute de developpement de plus de 500 000 personnes de
par le monde et des milliers d'applications commerciales, Sun vient
juste d'annoncer la creation d'un nouveau groupe de travail nomme
SunScript, pour soutenir cette communaute avec un environnement de
developpement integre et pour developper une suite de produits pour
etablir un lien entre Tcl le Web et Java.
Karl Lehenbauer, Fondateur et Directeur Technique de NeoSoft, a
participe au developpement de Tcl/Tk des le tout debut. Avec Mark
Diehkans, ils sont les auteurs de Tcl etendu (Extended Tcl), connu
egalement sous le nom de TclX ou NeoSoft Tcl, qui constitue un
ensemble puissant d'extensions au langage. Beaucoup des commandes
courantes essentielles de Tcl proviennent de Tcl etendu, et furent
introduites dans le langage par le Dr. Ousterhout.
NeoSoft Inc., 1770 St. James Place, Suite 500, Houston, TX 77056 USA
2244.. HHEEIITTMMLL,, eexxtteennssiioonn,, ccoottee sseerrvveeuurr ddee HHTTMMLL eett llaannggaaggee 44GGLL ppoouurr PPoosstt--
ggrreeSSQQLL
Heitml est un autre outil d'interfacage de postgres avec le monde du
world wide web. Pour plus de details contacter
Helmut Emmelmann H.E.I. Informationssyteme GmbH
Wimpfenerstrasse 23 Tel. 49-621-795141
68259 Mannheim Germany Fax. 49-621-795161
+o E-mail Mr.Helmut Emmelmann at emmel@h-e-i.de
+o Heitml site web principal
+o Heitml site web secondaire
Heitml est a la fois une extension, cote serveur, de HTML et un
langage de la quatrieme generation (4GL). Avec lui, on peut ecrire des
applications web dans un style HTML et en utilisant de nouvelles
balises de style HTML.
heitml (prononce "H-ail"-TML) est une extension de HTML et un langage
de quatrieme generation complet permettant aux Applications utilisant
le web d'interagir avec des donnees stockees dans des bases de donnees
SQL, sans meriter l'ecriture de scripts CGI complexes.
heitml etend HTML cote serveur, convertissant de maniere dynamique les
fichiers ".hei" au format HTML et ainsi, les rendant compatibles avec
n'importe quel butineur web. Il englobe la syntaxe simple et familiere
de HTML et apporte un large assortiment de Balises et de Bibliotheques
predeveloppees pour prendre en charge les taches qui auparavant
necessitaient CGI. De meme que XML, heitml permet l'utilisation de
balises definies par l'utilisateur. Avec heitml les marqueurs definis
par l'utilisateur peuvent etre traduits en HTML et envoyes a un
butineur.
heitml est destine a la fois aux concepteurs HTML et aux programmeurs
professionnels. Les concepteurs HTML peuvent utiliser les Balises
heitml pour fabriquer des pages web dynamiques, des acces aux bases de
donnees SQL ou creer des applications web completes. On peut creer des
Compteurs, des bases de donnees d'inscriptions, des formulaires de
recherche, des formulaires de courrier electronique ou des menus
hierarchises en utilisant simplement des Balises de style HTML
predeveloppees que l'on trouve dans les nombreuses Bibliotheques de
Composants.
Pour les programmeurs, heitml inclut un langage de quatrieme
generation complet en HTML
(e.g. , , et Balises),
plus un evaluateur d'expression puissant pour les types de donnees
entiers, reels, booleens chaine de caracteres et tuple. Les tuples ont
une reference semantique comme dans les langages orientes objets mod-
ernes et sont stockes sur un tas. Les variables heitml y compris
toutes les structures de donnees complexes stockees sur le tas conser-
vent leur valeur de page en page par l'utilisation du Mode Session. Il
vous est possible de definir vos propres balises ou vos balises
d'environnement et meme de redefinir les balises HTML.
Avec heitml il devient possible de
- - - developper des Sites Web de maniere structuree et modulaire,
tout en reduisant de facon drastique la surcharge due a la
maintenance.
- - - developper des Sites Web intelligents et interactifs, dont le
contenu s'adapte dynamiquement aux besoins de l'utilisateur.
- - - de visualiser le contenu de bases de donnees SQL sans autre
programmation que l'utilisation de notre bibliotheque de Balises
predefinies "dba".
- - - de developper des applications de bases de donnees complexes et
de Catalogue d'Achat en utilisant les Variables Session
heitml tourne sous Linux avec n'importe quel Serveur Web utilisant
l'interface CGI, et il est particulierement rapide (mis a part la
surcharge due a CGI) avec le Serveur Web APACHE (version 1.1.1, 1.1.3,
ou 1.2.4) en utilisant l'API apache. Actuellement MSQL (Version 1 et
2), PostgreSQL (Version 6), mysql, et les bases de donnees yard sont
supportes. heitml tourne sous Linux, BSDi, Solaris et SunOS, de meme
que sous Windows NT avec CGI, ISAPI et ODBC et Windows 95.
heitml (sous linux) est libre pour la recherche, et pour une
utilisation privee et non commerciale. Les Sites Web commerciaux
doivent payer une licence. La version totalement operationnelle de
heitml est disponible pour une periode d'essai et peut etre
telechargee librement. (Notez, cependant, que chaque page Web ".hei"
que vous developperez affichera un message indiquant qu'il s'agit
d'une version a usage non commerciale. Apres enregistrement, vous
recevrez une cle pour effacer ce message sans avoir a reinstaller le
programme.)
Les nouvelles fonctionnalites de la version 1.2 sont
- - - Bibliotheque de Composants pour des Formulaires de Recherche
dans un Base de Donnees, menus hierarchises d'ouverture et de
fermeture, formulaires de courrier electronique
- - - Le Mode Session a ete reconcu et ameliore pour conserver toutes
les variables (y compris le tas tout entier) au travers des
differentes pages. Cela signifie que les donnees, de n'importe quelle
taille sont conservees a l'interieur d'une session. Ceci offre
l'opportunite d'un champ plus large pour creer de nouvelles
applications, e.g. stockage complet des resultats d'une interrogation
dans la memoire de la session.
- - - Les instructions d'installation, la documentation et les
bibliotheques d'exemples ont ete augmentees de maniere significative,
un cours d'autoformation a ete ajoute
- - - Des balises pour executer des commandes shell et pour envoyer
des courriers electronique ont ete ajoutees
- - - Le support du formatage d'impression et de la mise au point.
heitml affiche votre code source en couleurs dans votre butineur et
signale les erreurs de facon intuitive. En cas d'erreur a l'execution,
toutes les structures de donnees internes sont affichees dans le
butineur en indiquant et preservant leurs positions dans le code
source original.
- - - Diverses nouvelles variables serveur et fonctions integrees ont
ete ajoutees
- - - En mode production, heitml collecte maintenant des informations
completes sur les erreurs survenues lors de l'acces, par des
utilisateurs, a votre site.
Voici ce que dit la page d'accueil de heitml -
heitml (prononcer "H-ail"-TML) etend et augmente de facon
significative les fonctionnalites de HTML grace aux balises
definissables et aux possibilites completes de programmation. Ce qui
permet de creer simplement des applications au contenu dynamique et
orientees bases de donnees dans le monde HTML, sans CGI et sans
scripts externes ou langages de programmation. Cela signifie que
vous, en tant qu'auteur HTML, vous pouvez inclure des applications
dans vos pages web, simplement, en utilisant quelques nouvelles
balises sans CGI et sans programmation. D'un autre cote, comme
utilisateur avance ou comme programmeur vous pouvez creer et
programmer de puissantes bibliotheques de balises. Cette approche
rend heitml souhaitable a la fois pour les utilisateurs nouveaux de
HTML et pour les programmeurs professionnels. heitml tourne sur le
serveur web et genere dynamiquement du HTML, aussi heitml est
compatible avec les standards internet et avec n'importe quel butineur
web. Il permet un acces total aux bases de donnees tout en evitant a
l'utilisateur toute la complexite inutile de CGI. heitml a ete
developpe selon les plus recents criteres en matiere de construction
de compilateurs et de systemes transactionnels.
Les pages heitml sont developpees exactement de la meme facon que les
pages HTML, a l'aide d'un editeur de texte ou d'un editeur HTML, et
placees comme d'habitude sur le serveur web. Cependant, maintenant,
les pages peuvent contenir des balises heitml dynamiques et des acces
a des bibliotheques de balises. Vous pouvez utiliser ces balises pour
acceder a une base de donnees, pour creer un contenu dynamique, pour
envoyer des courriers electronique, et meme pour creer de puissantes
applications telles que les bases de donnees d'inscriptions ou de
systemes d'achats.
Les nouveaux venus a HTML et les programmeurs professionnels seront
stupefaits de la vitesse et de la facilites avec lesquelles il peuvent
concevoir des applications passionnantes telle que notre Livre d'Or
Interactif sans necessiter la complexite et l'apprentissage difficiles
des scripts CGI, simplement en utilisant les outils fournis dans notre
bibliotheque dba.
heitml est accompagne d'un large eventail de bibliotheques de balises,
pour creer des livres d'or, des applications de maintenance de bases
de donnees, des formulaires puissants de courrier electronique ou de
structuration de votre site web a l'aide de menus hierarchiques. Ces
outils sont prets a etre utilises, il suffit simplement d'ajouter les
balises correspondantes a votre site web.
En tant que programmeur experimente, vous pouvez pleinement utiliser
l'architecture dynamique persistante de tuple d'heitml : heitml n'est
pas simplement un langage de script a typage dynamique, avec
evaluateur d'expression, procedures recursives et capacites de passage
de parametres etendues, mais il apporte aussi des possibilites de
tuples persistants dynamiques pour conserver automatiquement des
donnees de session de n'importe quelle taille.
heitml a tellement de nouvelles possibilites et d'usages que c'est
impossible de les decrire tous dans une simple page web. Pour cette
raison, nous avons concu ce site Web de maniere a fournir soit une
simple vue d'ensemble du produit, soit a fouiller aussi profondement
que vous le desirez dans les "tenants et aboutissants" du langage.
Quelle que soit l'approche que vous choisirez, nous pensons que vous
trouverez que heitml a beaucoup a offrir, et nous esperons que vous
serez d'accord pour trouver que reellement "il porte le monde du World
Wide Web a un niveau plus eleve!"
Le menu, sur le cote gauche de l'ecran vous aidera a naviguer dans
notre Site Web Site de maniere organisee et methodique, mais vous
pouvez aussi utiliser notre Menu Rapide (Quick Menu) pour sauter
directement a n'importe quelle page avec un seul clic sur le mulot.
Si vous visitez ce Site pour la premiere fois, nous vous suggerons
d'essayer le Livre d'Or Interactif d'heitml pour avoir une
demonstration vraiment impressionnante de la facon dont heitml peut
rendre vos Pages Web plus interactives. Si vous signez notre Livre
d'Or, vous pouvez nous laissez vos commentaires ou nous parler de
votre Site Web favori en utilisant les commandes de formatage de HTML.
C'est comme si vous creiez votre propre page Web privee et que vous la
voyiez publiee immediatement!
La section traitant des Fonctionnalites de heitml Features fourni un
Sommaire Rapide de ses Fonctionnalites et de ses Avantages, de meme
que des Pages destinees a repondre aux besoins specifiques et aux
questions des Concepteurs et des Programmeurs. Notre Guide du Langage
offre un didacticiel, en ligne, qui montre, de maniere pratique,
quelques unes des facons dont vous pouvez utiliser heitml pour
developper, ameliorer et simplifier vos Pages Web et vos Applications.
Le document Reference du Langage est destine a ceux qui cherchent une
information specifique sur la syntaxe, la structure, et l'utilisation
des differents elements du langage. Cependant, ce pourrait etre une
bonne idee pour tout le monde de lire la Page concernant la Conception
Generale qui offre une vue d'ensemble sur les types de problemes
specifiques pour lesquels heitml a ete concu afin d'y apporter une
solution.
Naturellement, vous voudrez savoir si heitml tourne sur le Systeme
d'Exploitation specifique, le Serveur Web, ou le SGBD SQL que vous
utilisez, vous trouverez toutes ces informations dans notre section
des Plates-formes Supportees.
Enfin, nous vous invitons a Telecharger une copie d'essai du programme
pour l'utiliser sur votre propre systeme. Nous sommes surs que vous
apprecierez cette "methode d'essai avant achat", et nous sommes a
l'ecoute de tout retour d'informations que vous voudrez bien nous
donner.
(c) 1996-1997 H.E.I. Tous droits reserves. (All Rights Reserved)
2255.. PPHHPP//FFII LLaannggaaggee ddee ssccrriipptt ccoottee sseerrvveeuurr,, aavveecc HHTTMMLL iinntteeggrree,, ppoouurr
PPoossttggrreeSSQQLL
Outil d'Interfacage WWW
Pour les questions envoyer un courrier electronique a :
rasmus@lerdorf.on.ca
On trouvera ci-dessous un extrait de la page d'accueil de PHP/FI :-
PHP/FI est un langage de script cote serveur, avec langage HTML
integre. Il vous permet d'ecrire des scripts simples directement dans
vos fichiers .HTML a la maniere JavaScript, sauf que, a la difference
de JavaScript, PHP/FI n'est pas dependant du butineur utilise.
JavaScript est un langage, cote client, avec HTML integre alors que
PHP/FI est un langage cote serveur. PHP/FI est similaire, dans son
concept, au produit LiveWire Pro pour Netscape. Si vous en avez les
moyens, vous utilisez le serveur du commerce Netscape et l'un des
systemes d'exploitation supportes, et vous jetterez probablement un
oeil sur LiveWire Pro. Si vous preferez un logiciel libre, evoluant
rapidement, qui est disponible avec la totalite de son code source,
vous apprecierez probablement PHP/FI.
2255..11.. FFoonnccttiioonnnnaalliitteess pprriinncciippaalleess
Support de CGI Standard, FastCGI et du module Apache. Comme programme
CGI standard, PHP/FI peut etre installe sur n'importe quelle machine
Unix sur laquelle tourne n'importe quel serveur web Unix. Avec le
support du nouveau standard FastCGI, PHP/FI peut trouver avantage des
gains de vitesse apportes par ce mecanisme. Comme module Apache,
PHP/FI devient une alternative extremement puissante et brillante a la
programmation CGI.
+o Enregistrement des acces Avec les possibilites d'enregistrement des
acces de PHP/FI, les utilisateurs peuvent entretenir leur propre
compteur d'acces et l'enregistrer. Il n'utilise en aucune facon les
fichiers de d'enregistrement des connexions du systeme central, et
il permet un suivi des acces en temps reel. Le Script du
Visualisateur de Connexions fournit un resume rapide des acces a un
ensemble de pages possedees par un utilisateur individuel. De plus,
le paquetage peut etre configure pour generer un pied de page, sur
chaque page, qui montre l'information sur les acces. Regardez au
bas de cette page pour en avoir un exemple.
+o Controle d'acces Un ecran de configuration integre, base sur le
web, permet la configuration du controle des acces. Il est possible
de creer des regles d'acces pour toutes ou quelques unes des pages
web possedees par une certaine personne qui met diverses
restrictions sur qui peut voir ces pages et comment elles seront
vues. Les pages peuvent etre protegees par un mot de passe,
completement interdites, a connexion desactivee et l'acces base sur
le domaine du client, le butineur, l'adresse de courrier
electronique ou meme le document auquel on se refere.
+o Support de Postgres Postgres est un SGBDR (RDBMS) avance libre.
PHP/FI supporte les requetes Postgres95 et PostgreSQL SQL incluses
directement dans les fichiers .html.
+o RFC-1867 Support du telechargement de fichier Le telechargement de
fichier est une nouvelle fonctionnalite de Netscape 2.0. Il permet
aux utilisateurs de telecharger des fichiers vers le serveur web.
PHP/FI realise le decodage Mime reel pour faire ce travail et
fournit aussi le cadre additionnel pour faire quelque chose d'utile
avec le fichier telecharge une fois que celui-ci a ete recu.
+o Controle d'authentification base sur HTTP PHP/FI peut etre utilise
pour creer des mecanismes d'authentification personnalises bases
sur HTTP pour le serveur web Apache.
+o Variables, Tableaux, Tableaux associatifs PHP/FI supporte des
variables typees, des tableaux et meme des tableaux associatifs a
la Perl. Ils peuvent etre passes d'une page web a l'autre en
utilisant les methodes GET ou POST.
+o Conditions, Boucles Tant que (While) PHP/FI possede un langage de
script aux fonctionnalites completes de style C. Vous disposez des
instructions de tests conditionnels if/then/elseif/else/endif ainsi
que des boucles while et des instructions switch/case pour
controler l'ordre logique et la maniere dont les pages html doivent
etre affichees.
+o Expressions Regulieres etendues Les expressions regulieres sont
tres utilisees pour le filtrage, le remplacement de sequences et
les manipulations generales de chaines de caracteres. PHP/FI
supporte toutes les operations communes sur les expressions
regulieres.
+o Controle de l'En-tete HTTP brute La possibilite d'envoyer a partir
de pages web des en-tetes HTTP brutes personnalisees en fonction
d'une condition est essentielle pour creer un site web de haut
niveau. Un usage frequent est l'envoi d'un emplacement: en-tete URL
pour rediriger le client appelant vers une autre URL. Il peut
aussi etre utilise pour stopper le stockage ou manipuler la
derniere mise a jour de l'en tete de pages.
+o Creation d'images GIF a la volee PHP/FI prend en compte la
bibliotheque d'image GD de Thomas Boutell ce qui offre la
possibilite de generer des images GIF a la volee.
+o Prise en charge du mode securite ("Safe Mode") ISP PHP/FI prend en
charge un "Mode de Securite" exceptionnel qui permet d'avoir de
multiples utilisateurs executant des scripts PHP en toute securite
sur le meme serveur.
+o C'est Libre! Pour finir, et c'est un point essentiel. Le paquetage
est entierement libre. Il est sous les conditions de la licence
GPL qui vous permet d'utiliser ce logiciel pour n'importe quel
objectif, commercial ou autre. Reportez-vous au document de la
Licence Publique GNU pour des renseignements detailles.
2255..22.. CCrreeddiittss
* De grandes parties de ce code ont ete developpees a et pour
l'universite de Toronto. De grands Mercis a Lee Oattes du Departement
de Developpement des Reseaux a l'universite pour ses critiques
constructives permanentes.
* Le code de prise en charge de Postgres95 a ete ecrit par Adam
Sussman asussman@vidya.com
* d'autres, innombrables, ont participe aux tests et a la mise au
point du paquetage.
PHP/FI Version 2.0
2255..33.. BBrreeff HHiissttoorriiqquuee
PHP a commence sa vie comme simple petite enveloppe cgi ecrite en
Perl. Je l'ai ecrit en un apres-midi, dans une periode entre deux
contrats, alors que j'avais besoin d'un outil rapide pour avoir une
idee de la personne qui etait en train de lire mon curriculum vitae en
ligne. Je n'avais eu l'intention de le voir utiliser en dehors de mon
propre usage. Le serveur web sur lequel j'avais mon curriculum vitae
etait extremement surcharge et avait des problemes constants de
creation de processus. Je reecris le petit programme Perl en C pour me
debarrasser de la surcharge considerable generee par la creation d'un
processus d'execution du programme Perl a chaque fois que mon
curriculum vitae etait consulte.
Par la suite d'autres personnes, sur le meme serveur web, prirent
connaissance de mon petit programme et me demanderent s'ils pouvaient
l'utiliser. Alors, comme cela devait arriver, ils commencerent a me
demander plus de fonctionnalites. J'ajoutais plus de fonctionnalites
et finalement constituais une semi-distribution en y incluant une
documentation, une liste de diffusion et une FAQ. Le nom de ce
paquetage etait "Outils pour une Page d'Accueil Personnelle" (Personal
Home Page Tools), nom qui devint plus tard "Kit de Construction de
Page d'Accueil Personnelle" (Personal Home Page Construction Kit).
A la meme epoque, je commencais a m'amuser avec les bases de donnees
et j'ecrivis un outil pour inclure facilement des requetes SQL dans
des pages web. C'etait fondamentalement un autre petit programme CGI
qui analysait les requetes SQL et facilitait la creation de
formulaires et de tables bases sur ces requetes. Cet outil fut appele
FI "Interpreteur de Formulaire" (Form Interpreter).
La version 2.0 PHP/FI est une reecriture complete de ces deux
paquetages combines pour former un simple programme. il a maintenant
evolue au point de devenir un simple langage de programmation integre
dans les fichiers HTML. L'acronyme original, PHP, lui est reste. Il
n'est plus reellement approprie. PHP/FI est aujourd'hui plus utilise
pour mettre en place des sites web entiers que pour de petites pages
d'accueil personnelles. Quel que soit son nom, il elimine le besoin de
recourir a de nombreux petits programmes cgi Perl en permettant
d'inserer de simples scripts directement dans vos fichiers HTML. Ceci
ameliore les performances globales de vos pages web puisque la
surcharge due au lancement de processus Perl successifs a ete
eliminee. La gestion de larges sites web a egalement ete facilitee en
placant tous les composants d'une page web dans un fichier html
unique. En incluant le support de differentes bases de donnees, il
devient trivial de developper des pages web mettant en oeuvre des
bases de donnees. Nombreux sont ceux qui trouvent que cette
integration est plus facile a gerer que d'essayer de creer des
fichiers HTML et CGI separes.
Tout au long de cette documentation, toute reference a PHP, FI ou
PHP/FI traite de la meme chose. La difference entre PHP et FI est
seulement conceptuelle. Les deux sont construits a partir de la meme
distribution du code source. Lorsque je construit le paquetage sans
aucun support de connexion d'acces ou de restriction d'acces, je nomme
mon binaire FI. Quand je le construit avec ces options, je l'appelle
PHP.
2255..44.. BBoonn,, qquuee ppuuiiss--jjee ffaaiirree aavveecc PPHHPP//FFII??
La premiere chose que vous allez noter, si vous faites tourner une
page par l'intermediaire de PHP/FI, c'est qu'il ajoute un pied de page
vous informant du nombre d'acces a votre page (si vous incluez le
support des connexions d'acces dans votre binaire). C'est seulement un
tout petit exemple de ce que PHP/FI peut faire pour vous. Il joue
egalement le role tres important d'interpreteur de formulaire cgi,
d'ou la partie FI de son nom. Par exemple si vous creez un formulaire
dans l'une de vos pages web, vous avez besoin de quelque chose pour
traiter l'information contenue dans ce formulaire. Meme si vous
desirez simplement passer l'information a une autre page web, vous
aurez besoin d'un programme cgi pour le faire. PHP/FI facilite
grandement le processus de prise en charge des donnees du formulaire
pour en faire quelque chose.
2255..55.. UUnn ssiimmppllee eexxeemmppllee
Supposons que vous ayez le formulaire :