Code : Tout sélectionner
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; CODE GÉNÉRÉ AUTOMATIQUEMENT, NE PAS MODIFIER À
; MOINS D'AVOIR UNE RAISON TRÈS TRÈS VALABLE !!!
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Code généré par : Dev-Type V1.4.2
; Nom du projet : Le nom du projet ici
; Nom du fichier : Nom du fichier
; Version du fichier : 0.0.0
; Programmation : À vérifier
; Programmé par : Votre Nom Ici
; Alias : Votre Pseudo Ici
; Courriel : adresse@quelquechose.com
; Date : 27-03-2009
; Mise à jour : 27-03-2009
; Codé pour PureBasic V4.30
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
UseSQLiteDatabase()
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Déclaration de la Structure <<<<<
Structure Student
Name.s
Age.b
Gender.s
id.l
EndStructure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Les observateurs <<<<<
Macro GetStudentName(StudentA)
StudentA\Name
EndMacro
Macro GetStudentAge(StudentA)
StudentA\Age
EndMacro
Macro GetStudentGender(StudentA)
StudentA\Gender
EndMacro
Macro GetStudentID(StudentA)
StudentA\id
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Les mutateurs <<<<<
Macro SetStudentName(StudentA, P_Name)
GetStudentName(StudentA) = P_Name
EndMacro
Macro SetStudentAge(StudentA, P_Age)
GetStudentAge(StudentA) = P_Age
EndMacro
Macro SetStudentGender(StudentA, P_Gender)
GetStudentGender(StudentA) = P_Gender
EndMacro
Macro SetStudentID(StudentA, P_ID)
GetStudentID(StudentA) = P_ID
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'opérateur Update <<<<<
Macro UpdateStudent(StudentA, P_Name, P_Age, P_Gender, P_ID = 0)
SetStudentID(StudentA, P_ID)
SetStudentName(StudentA, P_Name)
SetStudentAge(StudentA, P_Age)
SetStudentGender(StudentA, P_Gender)
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Macro de déboguage <<<<<
Macro DebugStudent(StudentA)
Debug Str(GetStudentID(StudentA)) + " : " + GetStudentName(StudentA) + " : " + Str(GetStudentAge(StudentA)) + " : " + GetStudentGender(StudentA)
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Code généré en : 00.016 secondes (6687.50 lignes/seconde) <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Procedure InsertDataBaseStudentElement(DatabaseID.l, *StudentA.Student)
DatabaseUpdate(DatabaseID, "INSERT INTO Student (Name, Age, Gender) VALUES ('" + GetStudentName(*StudentA) + "', '" + Str(GetStudentAge(*StudentA)) + "', '" + GetStudentGender(*StudentA) + "')")
EndProcedure
Procedure UpdateDataBaseStudentElement(DatabaseID.l, *StudentA.Student)
DatabaseUpdate(DatabaseID, "UPDATE Student SET Name='" + GetStudentName(*StudentA) + "', Age='" + Str(GetStudentAge(*StudentA)) + "', Gender='" + GetStudentGender(*StudentA) + "' WHERE ID='" + Str(GetStudentID(*StudentA)) + "'")
EndProcedure
Procedure DeleteDataBaseStudentElement(DatabaseID.l, *StudentA.Student)
DatabaseUpdate(DatabaseID, "DELETE FROM Student WHERE ID='" + Str(GetStudentID(*StudentA)) + "'")
EndProcedure
Procedure CreateDatabaseStudentTable(DatabaseID.l)
DatabaseUpdate(DatabaseID, "CREATE TABLE Student (ID INTEGER PRIMARY KEY, Name TEXT, Age INTEGER, Gender TEXT)")
EndProcedure
Procedure DeleteDatabaseStudentTable(DatabaseID.l)
DatabaseUpdate(DatabaseID, "DELETE FROM Student")
EndProcedure
Procedure ExtractDataBaseStudentElement(DatabaseID.l, *StudentA.Student)
SetStudentID(*StudentA, GetDatabaseLong(DatabaseID, 0))
SetStudentName(*StudentA, GetDatabaseString(DatabaseID, 1))
SetStudentAge(*StudentA, GetDatabaseLong(DatabaseID, 2))
SetStudentGender(*StudentA, GetDatabaseString(DatabaseID, 3))
EndProcedure
Procedure.l CreateStudentDataBase(DatabaseID.l, FileName.s)
Success.l = CreateFile(DatabaseID, FileName)
If Success
CloseFile(DatabaseID)
If OpenDatabase(DatabaseID, FileName, "", "", #PB_Database_SQLite)
CreateDatabaseStudentTable(DatabaseID)
CloseDatabase(DatabaseID)
EndIf
EndIf
ProcedureReturn Success
EndProcedure
Procedure Database_To_LinkedList(DatabaseID.l, List This.Student())
DatabaseQuery(DatabaseID, "SELECT * FROM Student")
While NextDatabaseRow(DatabaseID)
AddElement(This())
ExtractDataBaseStudentElement(DatabaseID, This())
Wend
EndProcedure
Procedure LinkedList_To_Database(DatabaseID.l, List This.Student())
ForEach This()
InsertDataBaseStudentElement(DatabaseID, This())
Next
EndProcedure
NewList Eleve0.Student()
NewList Eleve1.Student()
NewList Eleve2.Student()
NewList Eleve3.Student()
NewList Eleve4.Student()
NewList Eleve5.Student()
AddElement(Eleve0())
UpdateStudent(Eleve0(), "Pierre", 18, "Homme")
AddElement(Eleve0())
UpdateStudent(Eleve0(), "Paul", 18, "Homme")
AddElement(Eleve0())
UpdateStudent(Eleve0(), "Marcel", 20, "Homme")
AddElement(Eleve0())
UpdateStudent(Eleve0(), "Julie", 19, "Femme")
Debug "; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
Debug "; Liste original d'élèves"
Debug "ID : Nom : Age : Sexe"
ForEach Eleve0()
DebugStudent(Eleve0())
Next
Debug ""
FileName.s = "Student.sqlite"
If CreateStudentDataBase(0, FileName)
If OpenDatabase(0, FileName, "", "")
LinkedList_To_Database(0, Eleve0())
Database_To_LinkedList(0, Eleve1())
Debug "; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
Debug "; Liste d'élèves depuis la base de données"
Debug "ID : Nom : Age : Sexe"
ForEach Eleve1()
DebugStudent(Eleve1())
Next
Debug ""
UpdateStudent(Chantale.Student, "", 0, "", 2)
DeleteDataBaseStudentElement(0, Chantale)
UpdateStudent(Chantale, "Chantale", 28, "Femme", 3)
UpdateDataBaseStudentElement(0, Chantale)
Database_To_LinkedList(0, Eleve2())
Debug "; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
Debug "; Liste d'élèves depuis la base de données"
Debug "; Après suppression élément ID = 2 et mise à jour ID = 3"
Debug "ID : Nom : Age : Sexe"
ForEach Eleve2()
DebugStudent(Eleve2())
Next
Debug ""
AddElement(Eleve3())
UpdateStudent(Eleve3(), "Alexandre", 33, "Homme")
AddElement(Eleve3())
UpdateStudent(Eleve3(), "Guillaume", 30, "Homme")
AddElement(Eleve3())
UpdateStudent(Eleve3(), "Ariane", 35, "Femme")
Debug "; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
Debug "; Ajout à la Liste original d'élèves"
Debug "ID : Nom : Age : Sexe"
ForEach Eleve3()
DebugStudent(Eleve3())
Next
LinkedList_To_Database(0, Eleve3())
Debug ""
Database_To_LinkedList(0, Eleve4())
Debug "; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
Debug "; Liste augmenté d'élèves depuis la base de données"
Debug "ID : Nom : Age : Sexe"
ForEach Eleve4()
DebugStudent(Eleve4())
Next
Debug ""
DeleteDatabaseStudentTable(0)
Database_To_LinkedList(0, Eleve5())
Debug "; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
Debug "; Liste d'élèves détruite de la base de données"
Debug "ID : Nom : Age : Sexe"
ForEach Eleve5()
DebugStudent(Eleve5())
Next
Debug ""
CloseDatabase(0) ;ferme la base de donnée
EndIf
EndIf
; <<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< FIN DU FICHIER <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<
En espérant qu'il pourra t'aider.