Gambas France BETA


Pas de compte ? Incription

Initiaition aux bases de données.

1
AuteurMessages
Foromus#1 Posté le 4/11/2017 à 16:43:15
Bonjour,

Sujet récurent, je n'arrive pas à décoller...
J'ai essayé plusieurs fois de m'intéresser, et très vite, j'arrive au découragement, puis j'abandonne, en fait il y a probablement un manque de motivation, puisque je n'en ai pas réellement besoin.
Cependant, j'ai ma gestion "cave" qui est sur un tableur, je me dis qu'un bon petit programme en gambas serait certainement plus sympathique !
Je conçois donc une table "générale", avec toutes mes bouteilles, une table "régions" une sous-table "crus" (de la région considérée), une table "couleur", une table "millésime", et d'autres peut-être.
J'ai retenu que chaque table comporte des champs, le premier étant la clé, chaque champ contient des données et que les connexions entre les différentes tables se font via les clés, ce qui me paraît logique. Mais le drame, c'est que mon savoir s'arrête là...
J'ai regardé du côté du wiki, pas très convaincant, surtout quand c'est en anglais...
J'ai chargé le programme de "davidmue", vu qu'il a fait un truc, je n'ai strictement rien compris !
Je trouve normal qu'une BDD ait un nom, à la rigueur un pass, encore que je n'en ai pas besoin, après, j'envisage qu'elle reste sur mon disque dur, dans ce cas, pourquoi parler de "port" et de "connexion" ? Comme quoi, quand on ne sait pas, c'est difficile d'inventer...
Je pense que sur ce coup-là, j'ai tout à fait mal démarré, ce qui explique que les notions essentielles de base ne sont pas acquises, ni même été vues, et donc comme dans toute compréhension, dès lors que vous ne connaissez pas le sens d'un mot (même d'un seul), à un moment ou l'autre, c'est le blocage.
Donc là, je me dis que je repars tout à zéro. Pouvez-vous me donner un point de départ, je travaille dessus, et dès que j'ai appréhendé le contenu, je continue ou je redemande de l'aide.
Soyez assurés, chers tous, que je ne fais point l'aumône, aussi, si vous n'avez, ni le goût, ni le temps, ni l'envie de soutenir ma démarche, je ne saurais en aucun cas vous déconsidérer, vous m'avez, par le passé, déjà pas mal aidé comme ça, et je n'aime pas abuser !
Merci à vous.
jeanyvon#2 Posté le 5/11/2017 à 11:24:02
Gambas? Ma! Et gustoSalut,

Voir ça: http://www.gambaslinux.fr/articles.php?lng=fr&pg=191

c'est sur le site de spheris.
Vieillir? On peut retarder mais pas y échapper!
spheris#3 Posté le 12/11/2017 à 17:14:51
Foromus,
Alors petite initiation très simple.
Une base de données est pour imaginer, un tableau dans lequel les données sont accessibles par des commandes écrites appelées REQUETES.
La notion de nom utilisateur et mot de passe intervient si tu as par exemple ta base de données sur un serveur et que plein d'utilisateurs veuillent y accéder, tu concluras sans aucun doute qu'il y a une notion de permission et de droit de lecture/écriture.
Dans ton cas pour une utilisation classique sur ton PC seul, sans mot de passe ni nom utilisateur, cela fonctionnera.
Le protocole SQL ést donné pour du réseau, je te conseille d'utiliser en local le sqlite.
Pour avoir une base de données qui fonctionne, il te faut :
Un fichier BDD (base de donnéees) dans lequel il y a une Table (ton tableau), dans lequel il y a des champs (tes colonnes) et dans lequel il y a des lignes avec des cellules contenant tes données.
Pour ma part , même si gambas le gère très bien, j'utilise sqlitebrowser sur linux pour créer et vérifier mes bdd.
Ensuite, pour ajouter, enlever, éditer, la bdd, j'utilise tout simplement une 'requête SQL'
un petit exemple :

1
2
PUBLIC marequete AS STRING
marequete = "SELECT matable WHERE monchamps=montexte"


...et c'est tout !
Après, il sera très facile de connaitre les requêtes adaptées pour editer, effacer, trier, supprimer, des données.
ça ressemble étrangement à un langage basic amélioré.
Si tu veux, je peux te poster un petit exemple vraiment très simple.
Si tu ne comprends pas bien, n'hésite pas. Les gambasines sont là pour ça ;)
ptitjoz#4 Posté le 16/11/2017 à 18:11:27
Bonjour,
ta base de données est en sqlite3 ?
si oui tu peux deja faire des requêtes sql avec "DB browser pour Sqlite" et ensuite pour faire des extractions. Dès que tu as compris les principes de base tu intégreras dans Gambas. (je vais m'y mettre à Gambas car je ne connais pas grand chose pour l'instant)
Donc donne déjà la description de tes différentes tables de ta bdd
par exemple ta requête sql pourrait être du style
ici 2 tables liées "vin" et "région"
code sql !
1
2
3
4
5
SELECT vin,nom, vin.couleur, region.lieu, vin.qualite FROM vin,region
WHERE vin.reg_region = region.id
AND vin.annee = 1976
AND vin.qualite > 4
ORDER BY region.lieu
Foromus#5 Posté le 16/11/2017 à 18:14:45
Bonjour et merci pour ces renseignements.

Je vais essayer de voir ça, même si j'ai une idée, j'avais lu, à une époque, un livre sur le sujet, même si c'était sous W$. Mais la construction est la même je suppose.
Donc, si je veux partir d'un bon pied, je dois considérer deux choses :
- 1) d'abord, créer la base elle-même, c-à-d, le fichier principal la table de base, avec ses champs,
- 2) créer une première interface capable de modifier les champs, voire d'en ajouter ou d'en enlever, id pour les enregistrements,
- 3) créer une seconde interface capable d'appeler des requêtes, ne serait-ce que, par exemple, le clic sur un bouton.
Maintenant,si je fais le truc que je pensais, il me faudra cinq ou six autres tables, et là, je les crée avec l'interface 1 ou la 2 ?
Voilà, mais pour ça, je ne suis pas dans l'urgence....
ptitjoz#6 Posté le 16/11/2017 à 20:20:41
1) Dans une base de données il y a au moins une table mais tu peux en mettre des centaines ou plus...
Chaque table est composée de colonnes (ou champs)
tu peux relier les tables entre elles

Le principe des bases de données et d'éviter les informations redondantes
exemple si tu as 10000 clients qui habitent en "Allemagne", tu ne vas pas saisir 10000 fois "Allemagne" car ça prend de la place, un risque d'erreur à la saisie, alors tu vas juste saisir "DE" dans un enregistrement et tu reliera ce "DE" avec une autre table dans laquelle sur la même ligne il y aura "DE" qui correspondra à "Allemagne"

2) C'est assez rare qu'un logiciel, sauf pour les administrateurs de base de données, permettent de supprimer des tables ou des champs car ça peut avoir des conséquences sur le fonctionnement des requêtes existantes. C'est plutôt dans la phase de conception que l'on se pose les questions. Mais ce n'est pas non plus interdit de faire cela.
Par contre une interface pour ajouter/supprimer/mettre à jour des enregistrements est une bonne idée.

3) Oui une interface pour appeler des requêtes stockées et les exécuter est une bonne idée ; elle peut même créer de nouvelles requêtes.

1