[..] Création d'un trombinoscope. Besoin d'aide.

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Avatar du membre
Voodoo
Niveau 6
Niveau 6
Messages : 298
Enregistré le : ven. 20 juil. 2007 20:45
Status : Hors ligne

Re: [..] Création d'un trombinoscope. Besoin d'aide.

#21

Message par Voodoo »

Sqlite est un moteur de base de données qui prend en charge les requêtes SQL.

Si vous ne savez pas ce qu'est une base de données je vous invite à questionner Google. Mais pour simplifier la chose disons que c'est un tableau.

Nous avons Alice 43 ans,Bob 28 ans et Cindy 21 ans.

Code : Tout sélectionner

   Name      | Age
   -----------------------
   Alice       | 43
   Bob        | 28
   Cindy      | 21
 
Dans autoit3 il suffit de faire:

$tab[0][0]=Alice $tab[0][1]=43
$tab[1][0]=Bob $tab[1][1]=28
$tab[2][0]=Cindy $tab[2][1]=21

Avec sqlite on crée d'abord la structure donc les deux champs Nom et Age.

Code : Tout sélectionner

#include <SQLite.au3>
#include <SQLite.dll.au3>

_SQLite_Startup ()
If @error > 0 Then Exit MsgBox(16, "SQLite Error", "SQLite.dll Can't be Loaded!")
$bdd=_SQLite_Open ("maBdd") 
If @error > 0 Then Exit MsgBox(16, "SQLite Error", "Can't Load Database!")

 _SQLite_Exec (-1, "CREATE TABLE persons (Name, Age);")

 _SQLite_Exec (-1, "INSERT INTO persons VALUES ('Alice','43');")
 _SQLite_Exec (-1, "INSERT INTO persons VALUES ('Bob','28');")
 _SQLite_Exec (-1, "INSERT INTO persons VALUES ('Cindy','21');")

_SQLite_Close ()
_SQLite_Shutdown ()
 
je demarre le service, j'ouvre un fichier sqlite "maBdd" et j'execute une requête SQL.

Code : Tout sélectionner

CREATE TABLE persons (Name, Age);
 
Cela crée une table persons avec un champs Name et Age. La table c'est mon tableau c'est pareil sauf que je lui donne un nom, ici persons.

Ensuite il faut ajouter bob alice et cindy.

Code : Tout sélectionner

 _SQLite_Exec (-1, "INSERT INTO persons VALUES ('Alice','43');")
 
Une fois ma base crée je peux l'utiliser:

Code : Tout sélectionner

#include <SQLite.au3>
#include <SQLite.dll.au3>

Local $hQuery, $aRow, $sMsg

_SQLite_Startup ()
If @error > 0 Then Exit MsgBox(16, "SQLite Error", "SQLite.dll Can't be Loaded!")
$bdd=_SQLite_Open ("maBdd") 
If @error > 0 Then Exit MsgBox(16, "SQLite Error", "Can't Load Database!")

_SQLite_Query ( $bdd, "SELECT * FROM persons", $hQuery )

While (_SQLite_FetchData ($hQuery, $aRow) = $SQLITE_OK)
    msgbox(0, $aRow[0], $aRow[1])
 WEnd

_SQLite_Close ()
_SQLite_Shutdown ()
 
j'utilise _SQLite_Query pour envoyer ma requête sql à ma base de données et je traite les info avec _SQLite_FetchData qui va placer dans $aRow les resultats.

Il n'y a pas tellement plus de chose à savoir niveau SQL. il faut juste connaitre la syntaxe des CREATE, INSERT et SELECT. Il y a aussi UPDATE pour mettre à jour un enregistrement et DROP/DELETE pour effacer.

Un site en français qui en parle http://sql.1keydata.com/fr/
BeCool
Niveau 5
Niveau 5
Messages : 173
Enregistré le : jeu. 30 oct. 2008 08:48
Status : Hors ligne

Re: [..] Création d'un trombinoscope. Besoin d'aide.

#22

Message par BeCool »

Merci beaucoup pour ces infos :D

Maintenant, grâce a vous, il ne me reste plus qu'a refaire en grande partie mon script :|

Pour ce qui est de la base de donnée, je sais ce que c'est, j'ai eu a faire avec ces bêtes la plusieurs fois :)

Merci beaucoup en tout cas.

Edit :

Heu ué en fait c'est pas facile tout ça ...

J'ai testé le bout de script que vous m'avez fait, il ne marche pas, il n'écrit rien dans la BDD qu'il arrive quand même a créer.

Du coup j'ai fais une petite partie de mon script en m'inspirant grandement de votre exemple. Il ressemble a ceci, mais je ne suis pas sur qu'il soit opérationnel.

Code : Tout sélectionner

_SQLite_Startup ()
If @error > 0 Then Exit MsgBox(16, "SQLite Error", "SQLite.dll Can't be Loaded!")
$bdd=_SQLite_Open ("BDD_trombi")
If @error > 0 Then Exit MsgBox(16, "SQLite Error", "Can't Load Database!")
                            
_SQLite_Exec (-1, "CREATE TABLE Informations (Nom, Prenom, Service, Fonction, Numero de telephone externe, Numero de telephone interne, Mail);")

_SQLite_Exec (-1, "INSERT INTO Informations VALUES ('' & GUICtrlRead(Nom_ajout),'' & GuictrlRead($Prenom_ajout), '' & GuictrlRead($Service_ajout), '' & GuictrlRead($Fonction_ajout), '' & GuictrlRead($Num_tel_externe_ajout), '' & GuictrlRead($Num_tel_interne_ajout), '' & GuictrlRead($Mail_ajout));")
                                                
_SQLite_Close ()
_SQLite_Shutdown ()
De plus, je ne sais pas comment faire lire mon trombinoscope dans la BDD pour vérifier si la fiche personnel a déjà été créer ou pas ...
Répondre