Page 1 sur 1

SQLite est il le bon choix ?

Publié : mar. 21/août/2018 13:09
par omega
Bonjour à tous
En conclusion, sqlite parait le plus indiqué, n'est ce pas ?

Re: [TUTO débutants] les modules

Publié : mar. 21/août/2018 16:33
par falsam
omega a écrit :Bonjour à tous
En conclusion, sqlite parait le plus indiqué, n'est ce pas ?
Pour le type de projet que j'ai pu voir à travers ton zip, je te confirme que SQlite est la solution à utiliser.

Vu que tu as au moins 2 pc en réseau je te conseille même PostgreSQL

Re: [TUTO débutants] les modules

Publié : mar. 21/août/2018 16:36
par falsam
Petit code de connection sur une base de données PostgreSQL hébergé chez alwaysdata

Code : Tout sélectionner

UsePostgreSQLDatabase()

Enumeration
  #Database
EndEnumeration

Global ReqSql.s, Buffer.s

;Connection à la base de données PostgreSQL
If OpenDatabase(#Database, "host=postgresql-falsam.alwaysdata.net port=5432 dbname=falsam_01", "falsamdemo", "purebasicdemo", #PB_Database_PostgreSQL)
  Debug "Connected to PostgreSQL"
  
  ;Execution d'une requête de sélection
  ReqSql="select * from jeux order by annee asc"
  DatabaseQuery(#Database, ReqSql)
  
  ;Affichage du résultat
  If DatabaseQuery(#Database, ReqSql)
    While NextDatabaseRow(#Database)
      Buffer = GetDatabaseString(#Database, 1)              ; Titre du jeu
      Buffer + " (" + GetDatabaseString(#Database, 2)       ; Editeur
      Buffer + " - " + GetDatabaseLong(#Database, 3) + ")"  ; Année 
      
      Debug Buffer
    Wend
  EndIf  
  
  ;Fermeture de la base de données 
  CloseDatabase(#Database)
  
Else
  Debug "Connection failed: "+DatabaseError()
EndIf
j'ai l'impression que je radote avec ce code :wink:

Re: SQLite est il le bon choix ?

Publié : mar. 21/août/2018 17:14
par microdevweb
Bien sur que dés que l'on veux une base avec des enregistrements dynamiques sql et la meilleur solution.

Json est idéal pour sauver un model de données, tableur traitement quelconque on l'on doit cliqué sur save pour enregistrer sur disque.

Sql te permet tout des calculs, des filtres, des recherches et cela très rapidement et directement depuis la base, alors que Json tout devra passé en mémoire structure et devra être traité après.

Maintenant je suis de l'avis de falsam, si il y à plusieurs users pour une même base sqlite n'est plus adapté à ça, lui c'est plutôt pour de petite base locale.

Parce que plusieurs sur le même record sans blocage ou journalisation ça peut vite donné de sérieux problèmes.

Re: SQLite est il le bon choix ?

Publié : mar. 21/août/2018 22:19
par omega
Bonsoir Falsam
Vu que tu as au moins 2 pc en réseau je te conseille même PostgreSQL
Je crois que je serais obligé de l'utiliser en effet...
J'ai testé ton code, voilà ce que j'ai obtenu:
Connected to PostgreSQL
Duke Nukem (3D Realms - 1991)
Doom (id Software - 1993)
World of Warcraft (Blizzard Entertainment - 1994)
Blood (GT Interactive - 1997)
Age of Empires (Microsoft - 1997)

Ton code est clair, simple et très intéressant, la seule ligne qui nécessite une petite explication est celle-ci:

Code : Tout sélectionner

OpenDatabase(#Database, "host=postgresql-falsam.alwaysdata.net port=5432 dbname=falsam_01", "falsamdemo", "purebasicdemo", #PB_Database_PostgreSQL)
Pour mieux comprendre la syntaxe, j'ai consulté l'aide on line de pb:
- host: Nom d'ordinateur hôte pour se connecter.
- hostaddr: Adresse IP de l'ordinateur hôte pour se connecter.
- port: Numéro du port à utiliser pour la connexion.
- dbname: Le nom de la base de données. Par défaut, le même nom que l'utilisateur.
- connect_timeout: Attente maximum pour la connexion, en seconde (nombre décimal entier). Zéro ou non spécifié indique une attente infinie.Il n'est pas recommandé d'utiliser une attente inférieure à 2 secondes.
Exemple de l'aide pb:
UsePostgreSQLDatabase()
; Le serveur doit tourner sur la machine locale.
OpenDatabase(0, "host=localhost port=5432", "postgres", "postgres")
A quoi correspond "postgre","postgre" par rapport à la syntaxe de l'aide?
Je sais qu'on a déja vu cette commande mais je ne sais plus où je pourrais la retrouver. Au point où j'en suis... pas facile...
Merci

Re: SQLite est il le bon choix ?

Publié : mar. 21/août/2018 23:50
par omega
Je crois que j'ai compris maintenant (en faisant des tests), il me este un point important: si j'utilise localhost (host=localhost), où dois-je mettre ma base de données? localhost signifie l'adresse ip 127.0.0.1 qui désigne le pc (en local), mais où va t il chercher la base de données exactement? où dois-je la mettre ?
C'est juste pour faire un test (un seul user pour l'instant).
Merci

Re: SQLite est il le bon choix ?

Publié : mer. 22/août/2018 2:46
par falsam
mais où va t il chercher la base de données exactement? où dois-je la mettre ? C'est juste pour faire un test (un seul user pour l'instant).
Pour une installation en local tu dois installer PostgreSQL server

- Download https://www.postgresql.org/download/
- Support en français via le forum https://www.postgresql.fr/
omega a écrit :la seule ligne qui nécessite une petite explication est celle-ci:
Code:
OpenDatabase(#Database, "host=postgresql-falsam.alwaysdata.net port=5432 dbname=falsam_01", "falsamdemo", "purebasicdemo", #PB_Database_PostgreSQL)
Tu sais que tu as déja posé cette question en 2014 ?
La réponse est ici https://www.purebasic.fr/french/viewtop ... 42#p168142 :mrgreen:

Je te laisse le soin de lire avant et aprés cette réponse.

Re: SQLite est il le bon choix ?

Publié : mer. 22/août/2018 12:16
par omega
Bonjour,
Il reste un seul point à éclaircir si vous permettez chers pubistes:

Code : Tout sélectionner

OpenDatabase(#Database, "host=postgresql-falsam.alwaysdata.net port=5432 dbname=falsam_01", "falsamdemo", "purebasicdemo", #PB_Database_PostgreSQL)
Sur cet exemple, la base de données se trouve dans un serveur externe. Est ce qu'il y a un moyen de stocker la base dans un serveur local (réseau local de 2 pc liés). A ce moment la base sera placée dans le même dossier que PostGreSQL?
Dois-je la partager? Merci de m'orienter...

Re: SQLite est il le bon choix ?

Publié : mer. 22/août/2018 12:36
par falsam
La je ne sais plus quoi répondre. Je vais essayer de faire simple point par point dans tes questions.
omega a écrit :Est ce qu'il y a un moyen de stocker la base dans un serveur local (réseau local de 2 pc liés).
Oui avec l'installation d'un serveur PostgreSQL comme je l'ai dit dans mon commentaire précédent
omega a écrit :A ce moment la base sera placée dans le même dossier que PostGreSQL?
Le serveur s'occupe de tout.
omega a écrit :Dois-je la partager?
Le serveur s'occupe de tout.

Re: SQLite est il le bon choix ?

Publié : mer. 22/août/2018 13:51
par Marc56
omega a écrit :Est ce qu'il y a un moyen de stocker la base dans un serveur local (réseau local de 2 pc liés).
Oui, mais ne pas oublier qu'il y a deux éléments: Le serveur et la base.
omega a écrit :A ce moment la base sera placée dans le même dossier que PostGreSQL?
Pas nécessairement, tu peux choisir où mettre la base.
omega a écrit :Dois-je la partager?
Non, surtout pas.
Le client n'accède pas directement aux données, il passe par le postmaster (partie du serveur qui dialogue) et c'est ce dernier qui interprète la requête et retourne le résultat (Comme le mécanisme CGI sur les serveur web)
Comme c'est le serveur (via un utilisateur connu par lui) qui créé les bases de données, il y a accès en lecture/écritures.
On ne s'occupe donc pas des droits ni au niveau local (sécurités en langage Windows) ni au niveau réseau (partage)

PostgreSQL est une application client/serveur. Le client (programme) n'y accède que par le réseau, même s'il est sur la même machine que le serveur (dans ce cas, il se connecte sur l'interface de bouclage (loopback, 127.0.0.1)

C'est comme pour un serveur web: le serveur attend et livre les données (l’arborescence des fichiers)
Il peuvent ne pas être sur la même machine.

Sous Windows, le serveur tourne le plus souvent en tant que service et sous le compte system (compte 'machine' qui n'a rien à voir avec un compte administrateur) Il peut donc lire/écrire partout
Lors de l'installation, il te sera demandé de créer un utilisateur (souvent 'postgres')
Il est conseillé ensuite de créer un utilisateur au niveau base. C'est cet utilisateur que tu mettras dans la chaine de connexion de ton application.
Si tu utilises un serveur Linux, il faudra aussi créer un utilisateur pour lancer le daemon, car à juste titre il ne devra pas être lancé sous le compte root.

PS. L'installation Windows demandera 40 à 350 Mo (environ 75 pour les éléments essentiels)

De toutes façons, comme l'a dit falsam, sous Windows, le programme d'installation s'occupe de tout.

La doc est excellente, elle a même été francisée:
https://docs.postgresql.fr/10/
8)

Re: SQLite est il le bon choix ?

Publié : mer. 22/août/2018 20:40
par omega
Bonsoir à tous
J'ai téléchargé PostgreSQL v.10, je l'ai décompressé mais je ne vois pas un programme d'installation (aucune application ne figure dans le dossier). Comment l'installer?

Re: SQLite est il le bon choix ?

Publié : mer. 22/août/2018 21:48
par falsam
omega a écrit :J'ai téléchargé PostgreSQL v.10, je l'ai décompressé mais je ne vois pas un programme d'installation (aucune application ne figure dans le dossier). Comment l'installer?
Crée un compte sur le forum français de PostgreSQL et pose ta question :wink:

https://forums.postgresql.fr/

Re: SQLite est il le bon choix ?

Publié : jeu. 23/août/2018 6:09
par Marc56
omega a écrit :Bonsoir à tous
J'ai téléchargé PostgreSQL v.10, je l'ai décompressé mais je ne vois pas un programme d'installation (aucune application ne figure dans le dossier). Comment l'installer?
Tu as téléchargé les sources, ou la version zip (sans installeur) ou la version linux ?

PostgreSQL ne fournit pas de version Windows installable mais référence 2 versions compilées par d'autres sociétés

Le site officiel de PostgreSQL est https://www.postgresql.org/
Les liens sont dans download

EnterpriseDB
https://www.enterprisedb.com/fr
BigSQL
https://www.openscg.com/bigsql/postgres ... llers.jsp/

Elles sont similaires.
La deuxième n'est constituée que d'outils libres et fournit toujours PGadmin III qui est bien meilleur que l'horrible PGadmin 4 et fonctionne toujours avec les bases > 10
Si tu es sous Windows 10 x64, je te conseille d'utiliser postgresql-10.5-win64.exe

:wink:

Re: SQLite est il le bon choix ?

Publié : jeu. 23/août/2018 8:40
par microdevweb
Je ne l'ai jamais installé, mais voici une vidéo[/url] (dans la lange de shakespeare) pour installé sous Windows 10.

https://www.youtube.com/watch?v=e1MwsT5FJRQ&vl=fr