Aide - Recherche - Membres - Calendrier
Version complète : HB++, lier une zone d'écriture avec une BDD
Les Forums de PalmAttitude.org > GENERAL PalmOS > Développement sous PalmOS
katamiaw
Bonjour,

Je souhaite réaliser mon projet PALM sous HB++. Je ne comprends pas grand chose en Anglais, donc mon apprentissage du logiciel avec le manuel intégré est assez fastidieux...

Voici ce que je souhaite faire: lier des zones d'écritures (Field) avec une Base de Donnée. Le but étant que les champs remplis soient reportés dans une base de donnée, et enfin que cette base soit exportée sur le PC au format TXT.

Merci pour votre aide.
KaTa.
Payalba
Ou en es tu de ton apprentissage ? Parce que cela fais beaucoup de chose à expliquer d'un coup ! :?

Si tu en es au début, regarde les tutoriaux sur www.pdacool.com

Voici le lien vers la première partie :

http://www.pdacool.com/article.php3?id_article=368

Il y a actuellement 4 parties. Les db sont abordées dans la 4ème.

Regarde aussi les exemples livrés avec l'ide HB++ ;
autograph et delivery

Bon dév
katamiaw
J'avais déjà regardé le tuto, mais je ne comprends pas grand chose....
Payalba
Pour t'aider il va falloir plus d'info !

Que ne comprends tu pas ?
Quel est l'énoncé précis de ton projet ?

Connais tu en langage de programation ? etc...

PYT
katamiaw
Je souhaite réaliser un programme qui fonctionnerait ainsi: on rempli une feuille de 10 fields; ces feuilles seront classées ensuite par date de création pour d'éventuelles modifications. Le but final est ensuite d'aquérir la base de données crée sur le PC, celle-ci sera alors utilisée dans un logiciel spécifique sur PC.
Payalba
Et que ne comprends tu pas dans les tutos ?

Il me semblait très bien fais et etre très progrsesif !

Dans le tutos 4, il y a tout ce que tu demandes excepté la synchro avec le PC.
katamiaw
Je crée 1 base de donnée, dans cette base je crée 5 fields. Comment faire afficher ces fields sur le frmMain ?
Payalba
Il faut créer les champs sur la fenêtre frmMain

Dans le prog, il faut ouvrir la base lire un enregistrement puis mettre chaque champs de la base dans le champs de l'écran :

Dans le tutos (HBVideo, partie 4 sur pdacool), on a l'ouverture de la base qui est effectué dans le normal_launch de la classe application :

CODE
    Set db=OpenDatabase(hbModeReadWrite)


ou db est :

CODE
Public db as tblVideo


(tblVideo est la description de la table utilisé dans le tuto)


et opendatabase est :

CODE
Public Function OpenDatabase(ByVal eAccessMode as HbMode) as tblVideo

    Dim db as New tblVideo

    Dim e as Integer



    On Error Goto NotFound

Start:

    db.OpenTable hbModeOpenExisting+eAccessMode

    Set OpenDatabase=db

    db.MoveLast

    recunt=db.RecordCount

    Exit Function



NotFound:

    e=Err.Number

    If e<>43 Then Err.Raise e

    db.OpenTable hbModeCreateAlways+hbModeReadWrite

    db.OpenTable

    'Ajout de categories

    db.CategoryName(0)="Unfiled"

    db.CategoryName(1)="Musique"

    db.CategoryName(2)="Enfant"

    db.CategoryName(3)="Humour"

    db.CategoryName(4)="Drame"

    db.CategoryName(5)="SFiction"

    ' ajout d'enregistrements



    db.AddNew

    db.Named="PopStar M6"

    db.Created=DateSerial(2002,6,30,21,45,0)

    db.Support ="K7V_044"

    db.Category=1

    db.Update



    db.AddNew

    db.Named="Feu de l'Amour"

    db.Created=DateSerial(2002,6,28,15,45,0)

    db.Support ="K7V_034"

    db.Category=3

    db.Update



    db.Close



    Goto Start

End Function


La lecture d'un enregistrement est effectué par :

CODE
 db.LookupUniqueID uniqueID


mais aurait pu être réalisé par un db.movefirst, db.movenext,...

Et le lien avec les champs est fait dans la fenêtre frmNew :

CODE
bModified=False

    If bNew Then

 Set Focus=fldName

 selCreated.Date=Now()

 SelDtPret.Date =Now()

 cmdDelete.Visible=False

 iCategory=0

    Else

 fldName.Text=db.Named

 selCreated.Date=db.Created

 fldsupport.Text=db.Support

 fldpret.Text =db.Pret

 SelDtPret.Date =db.Dpret

 cmdDelete.Visible=True

 iCategory=db.Category

 chkPrivate.Value=db.Secret

    End If


Qui se traduit par : si on est en création, on initialise les champs avec des valeurs par défaut sinon on initialise les champs de la fenêtre par les valeurs de l'enregistrement pointés dans la base.

AI je été clair ? et Que veux tu savoir de plus ?
palmgaulois
Merci d'avoir decortiquer mon explication, wink.gif
j'ajouterai que rien ne vaut de charger des exemples déja fait par les autres et de les comprendre ligne par ligne.
voir ceux sur le site par exemple:

http://www.handheld-basic.com/samples.html
et en particulier autograph et delivery qui utilise tout 2 des bases de donnée.
katamiaw
CITATION(mamadou)
Merci d'avoir decortiquer mon explication, wink.gif
j'ajouterai que rien ne vaut de charger des exemples déja fait par les autres et de les comprendre ligne par ligne.
voir ceux sur le site par exemple:

http://www.handheld-basic.com/samples.html
et en particulier autograph et delivery qui utilise tout 2 des bases de donnée.

Merci, je vais consulter et étudier cela.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.