C la 1ere que je me lance dans le monde des CONDUITS.
j'essai de le développer en VB.
parcontre mon prog se plante fatalement lors de l'execution.
j'ai le msg d'error suivant: "Compile error: Expected array"
sur cette ligne du code: ReDim champs(NbrChamps)
Question subsidiaire: Que faire pour que je puisse testé tranquillement mon conduit sans affecter mon hotsync classique?
je crois que j'ai déjà fait du mal à mon hotsync car il repond mal en ce moment
voici mon code:
Type ModeleChamp
Nom As String
Type As Integer
Longueur As Long
Data As Variant
End Type
Global champs As ModeleChamp
Sub main()
Dim psav As PDRecordAdapter
Dim query As New PDDatabaseQuery
Dim pUtility As New PDUtility
Dim nIndex As Long
Dim vUniqueId As Variant
Dim nCategory As Long
Dim Attributes As ERecordAttributes
Dim vData As Variant
Dim ptr As Long
Dim NbrChamps As Integer
Dim NomChamp As String
Dim TypeChamp As Integer
Dim LongueurChamp As Integer
Dim texte As String
Dim strtmp As String
Dim longtmp As Long
Set psav = query.OpenRecordDatabase("TestDB", "PDDirect.PDRecordAdapter")
psav.IterationIndex = 0
vData = psav.ReadNext(nIndex, nuniqueid, nCategory, Attributes)
Do While Not psav.EOF
ptr = pUtility.ByteArrayToWORD(vData, 0, True, NbrChamps)
ReDim champs(NbrChamps)
For i = 1 To NbrChamps
ptr = pUtility.ByteArrayToBSTR(vData, ptr, 4, NomChamp)
ptr = ptr - 1
ptr = pUtility.ByteArrayToWORD(vData, ptr, True, NbrChamps)
ptr = pUtility.ByteArrayToWORD(vData, ptr, True, LongueurChamp)
champs(i).Nom = NomChamp
champs(i).Type = TypeChamp
champs(i).Longueur = LongueurChamp
Next i
For i = 1 To NbrChamps
Select Case champs(i).Type
Case 0
'chaine de caractères
ptr = pUtility.ByteArrayToBSTR(vData, ptr, champs(i).Longueur, strtmp)
'on ajoute 1 si le nombre d'octets est impair
If (champs(i).Longueur Mod 2) <> 0 Then
ptr = ptr + 1
End If
champs(i).Data = strtmp
Case 2
' date calculée à partir du 1/1/2000
ptr = pUtility.ByteArrayToDWORD(vData, ptr, True, longtmp)
champs(i).Data = #1/1/2000# + (longtmp - 35063)
End Select
Next i
vData = psav.ReadNext(nIndex, nuniqueid, nCategory, Attributes)
Loop
Set query = Nothing
Set psav = Nothing
Set pUtility = Nothing
End Sub