Base de données sur serveur

Résolu
Herve_be Messages postés 1016 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 24 avril 2024 - 17 oct. 2015 à 11:28
Herve_be Messages postés 1016 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 24 avril 2024 - 21 oct. 2015 à 11:49
Bonjour,
Je cherche un moyen d'enregistrer les utilisations d'un logiciel VB6 dans une "DB" sur mon serveur.
Un simple fichier texte auquel j'ajouterais un enregistrement à chaque utilisation suffirait, mais il implique de télécharger le fichier sur le PC de l'utilisateur, ajouter une ligne, puis l'uploader à nouveau, mais ce fichier risque de devenir volumineux.
L'accès à MySql via VB6 convient aussi mais implique d'installer une DLL sur le PC de chaque utilisateur, trop fastidieux.
Je cherche donc une autre idée simple.
Merci d'avance pour vos réponses

5 réponses

ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 5
18 oct. 2015 à 08:14
salut
je te conseil d'utiliser les fichiers XML, qui ne demande aucune installation.

ton fichier XML serait un peu comme ça:
<?xml version="1.0" encoding="utf-8"?>
<!--XML Database.-->
  </Data>
  <Connexion_Utilisateur>
    <Nom_Utilisateur>Manu</Nom_Utilisateur>
    <MotdePasse_Utilisateur>123</MotdePasse_Utilisateur>
   <Nom_Utilisateur>Pierre</Nom_Utilisateur>
    <MotdePasse_Utilisateur>456</MotdePasse_Utilisateur>
  </Connexion_Utilisateur>
  </Data>


après tu pourras crypté les données afin de ne pas voir les nom et les mots de passes.

A+
0
Herve_be Messages postés 1016 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 24 avril 2024 2
18 oct. 2015 à 11:38
Merci pour ta réponse, mais je ne vois pas comment je pourrais ensuite ajouter un 2ème, 3ème, ... utilisateur dans le même fichier.
Je pense que, comme un simple fichier txt je devrais le télécharger, l'ouvrir en append, ajouter un utilisateur et l'uploader à nouveau non ?
Je cherche un moyen d'ajouter une ligne ou un record à un fichier se trouvant sur le serveur en le laissant sur le serveur.
0
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 5
18 oct. 2015 à 12:53
pour utiliser les fichiers xml, il y a plein d'info sur le net : https://msdn.microsoft.com/fr-fr/library/bb384833.aspx
0
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 5
Modifié par ManuAntibes le 18/10/2015 à 13:38
voici le code que j'utilise pour ajouter

    Private XmlDatabasedata_xmlConnexion As String = My.Application.Info.DirectoryPath  "\xml_Connexion.xml"


 Try
                If My.Computer.FileSystem.FileExists(XmlDatabasedata_xmlConnexion) = True Then
                    XmlDataSet.ReadXml(XmlDatabasedata_xmlConnexion)
                End If
            Catch ex As Exception
                MsgBox(ex.Message, MsgBoxStyle.Critical, "Connexion au donnée XmlConnexion")
            End Try

Try
                Dim newCustomersRow As DataRow = XmlDataSet.Tables("Connexion_Utilisateur").NewRow()
                newCustomersRow("Nom_Utilisateur") = "Manu"
                newCustomersRow("MotdePasse_Utilisateur") = "123"

                XmlDataSet.Tables("Connexion_Utilisateur").Rows.Add(newCustomersRow)
                XmlDataSet.WriteXml(XmlDatabasedata_xmlConnexion)

                MsgBox("Connexion bien passé ...")
            Catch ex As Exception
                MsgBox(ex.Message, MsgBoxStyle.Critical, "Connexion au donnée ")
            End Try
            XmlDataSet.Clear()



et si le fichier n'existe pas il ce créer tout seul...
0
Herve_be Messages postés 1016 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 24 avril 2024 2
18 oct. 2015 à 16:24
Et tu ne dois rien déclarer comme ressource VB6 ou DLL ou autre ?
Je ne comprends pas où est le lien avec le serveur, je ne vois par exemple pas d'URL.
Je ne vois pas non plus comment exploiter le fichier XML.

J'ai pensé à une solution qui n'est pas très élégante mais ferait ce que je veux.
Chaque fois que je veux ajouter un enregistrement VB6 crée un fichier txt sur le PC de l'utilisateur, upload du fichier sur le serveur puis détruit le fichier txt; je me retrouve avec une foule de petits fichiers inexploitables directement.
D'autre part je crée un script php qui retrouve ces fichiers et crée un record MySql pour chacun d'eux en détruisant les fichiers txt au fur et à mesure.
Toutes les données sont alors exploitables en MySql.
0
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 5
18 oct. 2015 à 18:20
le chemin vers ton serveur, faut le mettre ici :

Private XmlDatabasedata_xmlConnexion As String = My.Application.Info.DirectoryPath "\xml_Connexion.xml"

a la place de My.Application.Info.DirectoryPath...

la ligne :My.Application.Info.DirectoryPath (c'est pour enregistrer mes fichiers xml à coté de mon appli sans me préocupé ou les utilisateurs on installer l'appli, je n'ai pas à chercher le chemin ou obliger les utilisateurs à mettre dans C:\ ou mes documents)

par contre 1 question
Tu veux que tes utilisateurs se connecte pour filtrer les utilisateurs ou pour sauvegarder des infos de l'application par utilisateurs (ex: les points de vie, les infos divers)
0
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 5
18 oct. 2015 à 18:23
si tu veux progresser ou apprendre des trucs sur vb
va voir sur youtube
https://www.youtube.com/user/projetx7/playlists

il y des videos sur les xml et les fichiers txt et les dossiers...
0
Herve_be Messages postés 1016 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 24 avril 2024 2 > ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021
19 oct. 2015 à 11:50
Je voudrais que chaque utilisateur puisse ajouter des données dans un fichier commun à tous les utilisateurs.
0
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 5 > Herve_be Messages postés 1016 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 24 avril 2024
19 oct. 2015 à 12:13
alors dis moi un peu comment tu organises ton fichier texte.
et comment tu t'y retrouves pour info..
0
Herve_be Messages postés 1016 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 24 avril 2024 2 > ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021
19 oct. 2015 à 13:34
Le but est de pouvoir tirer des statistiques sur l'utilisation du logiciel; les utilisateurs ne peuvent pas mettre n'importe quoi dans le fichier, c'est l'application qui y écrit des zones fixes, par exemple identification de l'utilisateur (pseudo), date, version du logiciel, ... toutes zones de largeur fixe éventuellement séparées par des ";" pour exploiter facilement par exemple en Excel.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Herve_be Messages postés 1016 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 24 avril 2024 2
21 oct. 2015 à 11:49
Bonjour,
J'ai mis peu de temps à écrire la solution que j'avais envisagée; quelques détails pour info :

Le programme VB6 crée un fichier texte sur le PC de l'utilisateur;
je m'arrange pour que le nom du fichier soit unique;
le fichier contient une seule ligne reprenant les données statistiques;
le fichier est uploadé sur le serveur avec WinInet puis détruit.
Je vous passe le code VB6 tellement c'est simple (Open, Print, Close, Inet.Execute , "PUT ", Inet.Execute , "CLOSE", Kill).

Quand je veux exploiter les données, je fais tourner un script php qui, pour chaque fichier, crée un enregistrement en MySql puis détruit le fichier.
Bien que nous soyons dans la section VB6 et non php voici le code au cas où vous auriez une remarque; pour simplifier je n'ai pas indiqué les messages après "die"
   $db = mysql_connect(*****,*****,*****);
mysql_select_db(*****,$db) or die;
$dir = opendir("Usage");
while($file = readdir($dir))
{
$myfile = fopen("Usage/".$file, "r") or die;
$Record = fgets($myfile);
Je vous passe le décorticage du record
mysql_query("INSERT INTO RVRTlog (Version, Timestamp, Module, Userid) VALUES ('$Version', '$Timestamp', '$Module', '$Userid')") or die;
unlink("Usage/".$file);
}
mysql_close();

J'ai donc in fine une seule table MySql qui contient toutes les données que je peux exploiter à ma guise; je peux par exemple la télécharger en Excel (.csv) directement à partir du serveur.
0
Rejoignez-nous