Base de données CPDB
Un article de Wikipedia.
Sommaire |
Base de données CPDB
But
Disposer d'une base de données sous Palm.
Introduction
La nécessité de pouvoir stocker des données entre deux lancements d'un programme nécessite de disposer d'une base de données.
Résultats
Le choix s'est porté sur la base de données CPDB (voir Ressources).
Préambule
Elle s'utilise en installant la base de données (voir Ressources) et en important la liaison avec Pascal (voir Ressources) via :
{$i PalmAPI.pas}
{$i CPDBSTD4PP.pas}
Initialisation
L'initialisation de la librairie s'effectue au début du programme par :
CPDB_OPENLIB;
Existence d'une base de données
Le test de l'existence d'une base de données se réalise de la manière suivante :
var bd : String;
...
bd = 'databaseCPDB';
...
if CPDB_DatabaseExist(bd)= CPDB_ERR_NOEXIST then
begin
// Creation de la base de donnees
end
else
begin
// Ouverture et utilisation de la base de donnees
end;
Création d'une base de données
La création d'une base de données se réalise par :
var bd : String;
...
bd = 'databaseCPDB';
...
Error:=CPDB_CreateDatabase(0,bd,DBCreator,'DATA1=INT;DATA2=SHORTINT;');
...
Le dernier argument de CPDB_CreateDatabase décrit les enregistrements de la base de données.
Il y a 4 types possibles :
- STRING
- SHORTINT
- INT
- LONGINT
La description s'effectue en spécifiant le nombre de l'entrée '=' le type de données ';'.
Ouverture d'une base de données
L'ouverture d'une base de données se réalise ainsi :
var Error : Err;
iHandle :UInt8;
bd : String;
...
bd = 'databaseCPDB';
...
Error:=CPDB_Open(0,bd,dmModeReadWrite,iHandle);
...
Avec les modes suivants de PalmAPI.pas
- dmModeReadOnly
- dmModeWrite
- dmModeReadWrite
Lecture de données
La lecture des données s'effectue en utilisant les 4 fonctions associées aux 4 types possibles :
var Error : Err;
iHandle :UInt8;
gh : Int16;
...
Error:=CPDB_ReadInt(iHandle,'GH',gh);
...
- CPDB_ReadInt : Pour lire un type INT (Int16)
- CPDB_ReadShortInt : Pour lire un type SHORTINT (byte)
- CPDB_ReadLongInt : Pour lire un type LONGINT (Int32)
- CPDB_ReadInt : Pour lire un STRING (String) (voir ci-dessous)
Lecture d'une chaîne de caractères
La lecture d'une chaîne de caractère est un peu plus complexe. Il faut suivre la procédure suivante :
function readstring(name:string):string;
var line:^string;
temp:string;
address:MemHandle;
iHandle:UInt8;
Error:Err;
begin
Error:=CPDB_ReadString(iHandle,name,address);
line:=MemHandleLock(address);
temp:=line^;
Error:=MemHandleUnlock(address);
Error:=MemHandleFree(address);
readstring:=temp;
end;
Ecriture de données
Fermeture d'une base de données
La fermeture d'une base de données se réalise ainsi :
var Error : Err;
iHandle :UInt8;
...
Error:=CPDB_Close(iHandle);
...
Terminaison
Il faut clore la librairie en utilisant la commande :
CPDB_CLOSELIB;
Conclusions
Ressources
- Base de données CPDB sur site de PP Compiler
- Base de données CPDB standard Media:CPDBSTD120.prc
- Liaison Pascal avec la base de données CPDB Media:CPDBSTD4PP.pas.pdb
- Source CPDBSTD4PP.pas
Catégories: Logiciel | Pascal | Palm