SQLite est il le bon choix ?
SQLite est il le bon choix ?
Bonjour à tous
En conclusion, sqlite parait le plus indiqué, n'est ce pas ?
En conclusion, sqlite parait le plus indiqué, n'est ce pas ?
Win7 (x64) 64 bits Pb 5.72
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: [TUTO débutants] les modules
Pour le type de projet que j'ai pu voir à travers ton zip, je te confirme que SQlite est la solution à utiliser.omega a écrit :Bonjour à tous
En conclusion, sqlite parait le plus indiqué, n'est ce pas ?
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%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: [TUTO débutants] les modules
Petit code de connection sur une base de données PostgreSQL hébergé chez alwaysdataj'ai l'impression que je radote avec ce code 
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

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%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- microdevweb
- Messages : 1802
- Inscription : mer. 29/juin/2011 14:11
- Localisation : Belgique
Re: SQLite est il le bon choix ?
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.
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
Work at Centre Spatial de Liège
Re: SQLite est il le bon choix ?
Bonsoir Falsam
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:
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
Je crois que je serais obligé de l'utiliser en effet...Vu que tu as au moins 2 pc en réseau je te conseille même PostgreSQL
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)
- 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
Re: SQLite est il le bon choix ?
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
C'est juste pour faire un test (un seul user pour l'instant).
Merci
Win7 (x64) 64 bits Pb 5.72
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: SQLite est il le bon choix ?
Pour une installation en local tu dois installer PostgreSQL servermais 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).
- Download https://www.postgresql.org/download/
- Support en français via le forum https://www.postgresql.fr/
Tu sais que tu as déja posé cette question en 2014 ?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)
La réponse est ici https://www.purebasic.fr/french/viewtop ... 42#p168142

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%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: SQLite est il le bon choix ?
Bonjour,
Il reste un seul point à éclaircir si vous permettez chers pubistes: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...
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)
Dois-je la partager? Merci de m'orienter...
Win7 (x64) 64 bits Pb 5.72
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: SQLite est il le bon choix ?
La je ne sais plus quoi répondre. Je vais essayer de faire simple point par point dans tes questions.
Oui avec l'installation d'un serveur PostgreSQL comme je l'ai dit dans mon commentaire précédentomega 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).
Le serveur s'occupe de tout.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?
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%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: SQLite est il le bon choix ?
Oui, mais ne pas oublier qu'il y a deux éléments: Le serveur et la base.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).
Pas nécessairement, tu peux choisir où mettre la base.omega a écrit :A ce moment la base sera placée dans le même dossier que PostGreSQL?
Non, surtout pas.omega a écrit :Dois-je la partager?
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/

Re: SQLite est il le bon choix ?
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?
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
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: SQLite est il le bon choix ?
Crée un compte sur le forum français de PostgreSQL et pose ta questionomega 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?

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%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: SQLite est il le bon choix ?
Tu as téléchargé les sources, ou la version zip (sans installeur) ou la version linux ?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?
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

- microdevweb
- Messages : 1802
- Inscription : mer. 29/juin/2011 14:11
- Localisation : Belgique
Re: SQLite est il le bon choix ?
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
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
Work at Centre Spatial de Liège