Aide - Recherche - Membres - Calendrier
Version complète : Recup donnée dans un pdb
Les Forums de PalmAttitude.org > GENERAL PalmOS > Développement sous PalmOS
Destino
Salut à tous,

j'essai de recupérer mes données (pdb) sur mon pda vers un fichier texte sur pc.
je crée un conduit. mais le problème est que je ne recupère que la 1ere information de chaque record.
Exemple: Dans le PDA, je crée une base de données avec les records ayant la structure suivante:

typedef struct {
char id[40];
char idc[10];
char TypeNote[3];
char TypeNote_Nom[30];
char DateNote[50];
char HeureNote[50];
char CreatNom[20];
char Text[10000];

} DBRecordNote;

cependant qd je lance mon conduit pour récupérer tous les champs, je ne récupère que le 1er champ (en l'occurence : char id).
voici mon code du conduit en VB. Merci de votre aide

Dim pUtil As New PDUtility
Dim DbQuery As New PDDatabaseQuery
Dim Adapter As PDRecordAdapter
' Open the database
Set Adapter = DbQuery.OpenRecordDatabase("NoteDB", "PDDirect.PDRecordAdapter", eRead Or eWrite)

Dim UniqueId As Variant
Dim Index As Long
Dim Category As Long
Dim Attributes As ERecordAttributes
Dim Data As Variant

Dim s As String

' Reset the iteration index
Adapter.IterationIndex = 0

Read the first record
Data = Adapter.ReadNext(Index, UniqueId, Category, _
Attributes)
Dim t As Long
t = pUtil.ByteArrayToBSTR(Data, 0, 40, s)
MsgBox s

Data = Adapter.ReadNext(Index, UniqueId, Category, _
Attributes)
t = pUtil.ByteArrayToBSTR(Data, 0, 10, s)
MsgBox s

Data = Adapter.ReadNext(Index, UniqueId, Category, _
Attributes)
t = pUtil.ByteArrayToBSTR(Data, 0, 3, s)
MsgBox s

Data = Adapter.ReadNext(Index, UniqueId, Category, _
Attributes)
t = pUtil.ByteArrayToBSTR(Data, 0, 30, s)
MsgBox s
Patrice
Je ne suis définitivement pas spécialiste de VB, mais je pense que ton code lit les enregistrements successifs (avec les ReadNext) au lieu de parcourir le contenu du premier enregistrement.

Je dirais donc que le code devrait plutôt ressembler à :

; Read the first record
Data = Adapter.ReadNext(Index, UniqueId, Category, Attributes)
; Get 1st field in record
t = pUtil.ByteArrayToBSTR(Data, 0, 40, s)
; Get 2nd field in record
t = pUtil.ByteArrayToBSTR(Data, 40, 10, s)
etc...
Destino
Super ca marche. Merci bcp
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.