SQLite est il le bon choix ?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
omega
Messages : 633
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

SQLite est il le bon choix ?

Message par omega »

Bonjour à tous
En conclusion, sqlite parait le plus indiqué, n'est ce pas ?
Win7 (x64) 64 bits Pb 5.72
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: [TUTO débutants] les modules

Message 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
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: [TUTO débutants] les modules

Message 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:
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: SQLite est il le bon choix ?

Message 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.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
omega
Messages : 633
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

Re: SQLite est il le bon choix ?

Message 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
Win7 (x64) 64 bits Pb 5.72
Avatar de l’utilisateur
omega
Messages : 633
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

Re: SQLite est il le bon choix ?

Message 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
Win7 (x64) 64 bits Pb 5.72
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: SQLite est il le bon choix ?

Message 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.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
omega
Messages : 633
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

Re: SQLite est il le bon choix ?

Message 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...
Win7 (x64) 64 bits Pb 5.72
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: SQLite est il le bon choix ?

Message 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.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Marc56
Messages : 2198
Inscription : sam. 08/févr./2014 15:19

Re: SQLite est il le bon choix ?

Message 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)
Avatar de l’utilisateur
omega
Messages : 633
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

Re: SQLite est il le bon choix ?

Message 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?
Win7 (x64) 64 bits Pb 5.72
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: SQLite est il le bon choix ?

Message 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/
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Marc56
Messages : 2198
Inscription : sam. 08/févr./2014 15:19

Re: SQLite est il le bon choix ?

Message 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:
Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: SQLite est il le bon choix ?

Message 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
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Répondre