1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
public Donnees as new system.IO.memoryStream
public Formatteur as new Formatter.binary.binaryFormatter
' Ecrit l'objet en paramètre dans la base
' Retour TRUE si l'opération s'est déroulée correctmeent, FALSE sinon
public Function Objet_Ecrit(byval o as oObjet) as boolean
Dim retour as boolean
Dim rs as new recordset
Formatteur.serialize(donnees, o)
donnees.flush
donnees.seek(0, SeekOrigin.Begin)
Dim Buffer(Donnees.length) as Byte
Donnees.Read(Buffer,0,Donnees.length)
try
rs.open("SELECT * FROM OBJETS;", _DBConnect, cursorTypeEnum.ADOpenKeySet, LockTypeEnum.ADLockPessimistic)
rs.addnew
rs.fields(cId).value=o.Id
rs.fields(cDonnees)=Buffer
rs.update
rs.close
retour=true
catch ex as exception
MsgBox("Une erreur est survenue lors de l'enregistrement de l'objet " & o.Id & vbcrlf & _
"Le message retourné était : " & ex.message, cDIALOG_ERREUR, _
"ECRITURE SUR LA BASE DE DONNEES IMPOSSIBLE")
end try
o=Formatteur.deserialize(donnees) *
Retour Return
End Function
' Lit les données correspondant à l'objet passé en paramètre dans la base de données
' et met à jour les attributs de l'objet.
' Retourne TRUE si l'objet existe et a pu être lu correctement, FALSE sinon
Public Function Objet_Lit(ByRef o as oObjet) as boolean
dim retour as boolean
dim rs as new recordset
try
rs.open("SELECT * FROM OBJETS WHERE [IdObjet]=" & o.Id & " ;", _dbconnect, cursorTypeEnum.ADOpenForwardOnly, LockTypeEnum.ADLockReadOnly)
Dim Buffer() as byte=rs.fields(cDonnees).value
Donnees.write(Buffer, 0, Buffer.count)
o=Formatteur.deserialise(Donnees)
retour=true
catch
MsgBox("Une erreur est survenue lors de la lecture de l'objet " & o.Id & vbcrlf & _
"Le message retourné était : " & ex.message, cDIALOG_ERREUR, _
"LECTURE DANS LA BASE DE DONNEES IMPOSSIBLE")
retour=false
end try
return retour
end function |
Partager