aldweb

Close I. aldweb

Close II. PC Freeware

Close III. Palm Freeware

Close IV. Palm Shareware

Close V. iziBasic Palm

Close VI. Palm Knowledge

Close VII. Pocket Computer

Close VIII. miniPortail

Search




Newsletter
To receive news about this website, consider subscribing to our Newsletter.
Subscribe
Unsubscribe
298 Subscribers
Webmaster - Infos
Visits

   visitors

   visitors online

article.gifSCOOP : CPDB will soon be compatible with HSPascal!
SCOOP : CPDB bientôt compatible avec HSPascal ! - Posté le 04/10/02

Palm OSDepuis que j'ai découvert CPDB, je rêvais de son portage sur HSPascal. Et comme on n'est jamais mieux servi que par soi-même, je m'en suis donc occupé. C'est maintenant chose faite et PeekPoke sortira courant de la semaine prochaine (c'est là qu'est le SCOOP !) ce portage de CPDB sur HSPascal.

En avant première donc, vous découvrirez dans cet article la facilité déconcertante avec laquelle on arrive à travailler sur les bases de données avec CPDB... et on se demande bien comment on a fait pour attendre aussi longtemps que ce superbe développement de notre ami PeekPoke (rappelons au passage que PeekPoke est l'un des deux valeureux membres fondateurs de PeekPocket) arrive !

Comme on n'apprend bien que par l'exemple, nous allons décrire un petit programme écrit en HSPascal qui utilise CPDB.

Le petit programme en question enregistre dans une base de données PDB des scores (aléatoires pour la démo) réalisés à différents niveaux (aléatoire aussi pour la démo). A chaque lancement du programme un enregistrement Niveau / Score est enregistré et le programme recalcule alors la moyenne des différents scores réalisés. C'est simple et c'est parfait pour apprendre

Passons aux choses sérieuses, le code HSPascal : Tout d'abord, nous allons inclure la bibliothèque CPDB dans notre programme et définir nos variables de travail :

Program CPDBtest;

{ $ SearchPath Units; UnitsUI; UnitsSystem }
{ $ ApplName CPDBtest,TEST }

Uses
CPDBSTD
,DataMgr,Crt,HSUtils;

const
NoError = 0;

var
Error: Err;
iHandle: Byte;
Level: ShortInt;
Score: SmallInt;
NbRecords: SmallInt;
Average: Integer;

Nous pouvons ensuite commencer notre programme, et ouvrir la bibliothèque CPDB :

begin
Randomize;
CPDB_OPENLIB;

Puis, on crée la base de données si elle n'existe pas encore :

  if CPDB_DatabaseExist('HiScoreCPDB')= CPDB_ERR_NOEXIST then 
Error:=CPDB_CreateDatabase(0,'HiScoreCPDB',s2u32('TEST'),
'NOM=STRING[10];LEVEL=SHORTINT;SCORE=INT');


Maintenant, on est sur que la base de données existe, alors on l'ouvre :

  Error:=CPDB_Open(0,'HiScoreCPDB',dmModeReadWrite,iHandle);


On a tout le loisir ensuite d'ajouter un nouvel enregistrement Niveau / Score :

  Level:=Random(10);
Score:=Random(100);
writeln('Adding LEVEL= '+i2s(Level)+' SCORE= '+i2s(Score));
Error:=CPDB_AddRecord(iHandle);
Error:=CPDB_WriteShortInt(iHandle,'LEVEL',Level);
Error:=CPDB_WriteInt(iHandle,'SCORE',Score);
Error:=CPDB_UpdateRecord(iHandle);


Maintenant, nous voulons connaître la moyenne de tous les scores déjà réalisés. Pour celà, nous commençons par compter le nombre d'enregistrements :

  Error:=CPDB_CountRecord(iHandle,NbRecords);


Puis, nous plaçons au début du fichier, et le parcourons en notant bien tous les scores réalisés successivement :


  Average:=0;
Error:=CPDB_ReadFirst(iHandle);
while Error=NoError do begin
Error:=CPDB_ReadInt(iHandle,'SCORE',Score);
Inc(Average,Score);
Error:=CPDB_ReadNext(iHandle);
end;


Nous pouvons maintenant fermer notre petite base de données, calculer et afficher la moyenne recherchée :

  Error:=CPDB_Close(iHandle);
writeln('Average Score= '+i2s(round(Average/NbRecords)));


Il nous reste juste à fermer la bibliothèque CPDB et quitter notre programme :

  CPDB_CLOSELIB;
end.


Et voilà, c'est terminé. L'écriture de ce programme n'a demandé que quelques minutes de travail très détendu puisque c'est CPDB qui s'occupe de tout ou presque !
Cette bibliothèque est carrément INDISPENSABLE à tout développeur sur Palm et il ne me reste plus qu'à tirer bien bas mon chapeau à PeekPoke.

aldweb

Le converti à CPDB

Creation date : 01/01/2003 @ 00:00
Last update : 01/01/2003 @ 00:00
Category :


Print the article Print the article

 
react.gifReactions to this article

Nobody gave a comment yet.
Be the first to do so!

 
Special !



Mobile version of
the aldweb Site

m.aldweb.com


Neither French, nor English?

Try one of these flags then:
[de] [es] [it] [pt]
Weather / Spam / www

Lyon Weather


aldweb against spam


Family's web sites

Friends News
Poll
What do you think of the new design of the aldweb Site?
 
Great !
Beautiful
Average
So ugly...
Results
^ Top ^