PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Connexion à BDD sur un Raspberry pi
Connexion à BDD sur un Raspberry pi
Iniciado por mickael.samson, 15,dic. 2019 14:33 - 1 respuesta
Publicado el 15,diciembre 2019 - 14:33
Bonjour,

Contexte :
Possibilité de créer une BDD de type CSV, XML, JSON ou SQLITE sur le Raspberry.J'ai retenu une base de type SQLITE car je souhaite que le Raspberry ajoute des données dans une table pendant que le serveur les supprimes au fur et à mesure. Je pense pouvoir le faire en SQLITE (mais je me trompe peut-être)Du côté du serveur il y a une application Windev afin de pouvoir récupérer les données du Raspberry et les stocker sur une BDD en HFSQL CS sur le serveur principal.

Problématique :
Je n'arrive pas réaliser la connexion avec la BDD du Raspberry via la fonction HOuvreConnexionEn effet j'ai seulement réussi à etablir une connexion en FTPConnecte ou encore en SSH connexion. Mais cela me permet juste de transférer la BDD du Raspberry vers le serveur.

Objectif du projet :
Le Raspberry collecte des données en local (car il doit pouvoir fonctionner même si le serveur principal est déconnecté) et périodiquement le serveur principal récupére les données du Raspberry sans perturber le fonctionnement du Raspberry.Car il faut supprimer les données lorsque le serveur les a récupérer sans pour autant créer des doublons de données ou avoir de la perte de données.Informations supplémentaires : le Raspberry peut créer plusieurs dizaines de lignes dans la table chaques secondes. D'ou je pense l'importance de pouvoir se connecter directement à la BDD du Raspberry et que la mise en place d'une solution de transfére de fichiers me paraît compliquer.

Quelques lignes de code que j'ai essayé :
// Connexion du poste en cours au serveur SSH de type Raspberry
sAdresseIP est une chaîne = "192.168.1.33"
nConnexion est un entier = FTPConnecte("sftp://"+sAdresseIP,"pi","pi",22)
SI nConnexion = -1 ALORS RENVOYER Faux
sBase est une chaîne = "/home/pi/partage/sqlite3.db"
SI FTPFichierExiste(nConnexion, sBase) ALORS
fSupprime(fRepDonnées()+"\sqlite3.db")
FTPRécupère(nConnexion,sBase,fRepDonnées())
FTPSupprimeFichier(nConnexion,sBase)
ConnexionSqlite3EnCours est une Connexion
// Description de la connexion
ConnexionSqlite3EnCours..Utilisateur = ""
ConnexionSqlite3EnCours..MotDePasse = ""
ConnexionSqlite3EnCours..Serveur = fRepDonnées()+"\sqlite3.db"
ConnexionSqlite3EnCours..BaseDeDonnées = "sqlite3.db"
ConnexionSqlite3EnCours..Provider = hAccèsNatifSQLite
ConnexionSqlite3EnCours..Accès = hOLectureEcriture
ConnexionSqlite3EnCours..InfosEtendues = "ConnexionSqlite3"
ConnexionSqlite3EnCours..OptionsCurseur = hCurseurClient
HOuvreConnexion(ConnexionSqlite3EnCours)
HChangeConnexion(produits,ConnexionSqlite3EnCours)
POUR TOUT produits
Trace(produits.code,produits.nom,produits.quantite)
FIN
HFermeConnexion(ConnexionSqlite3EnCours)
fSupprime(fRepDonnées()+"\sqlite3.db")
FIN
// Déconnexion
FTPDéconnecte(nConnexion)


Merci par avance pour votre aide,
Mika
Miembro registrado
84 mensajes
Publicado el 16,diciembre 2019 - 19:25
je ne sais pas si cela va vous aider mais je procèderais peut-être différement.

création d'un webservice sur le serveur qui capture les requetes REST ou HTTPS initiées par le rasp.
ça me semble plus léger.