Page 3 sur 3

Re: [..] Écrire dans une BDD SQL à distance

Posté : mar. 30 août 2011 11:59
par blacksoul305
Woarf... Impressionné, je ne pense pas que j'aurai pu faire ce code là.

Deux petites choses pour la compréhension de votre:

1) Comment Autoit peut ouvrir une base de donnée sans que j'en donne le mot de passe ni le nom ?

2) Je n'ai pas bien compris cette partie là:
► Afficher le texte
Modifications:

Comment aménager le code de façon à ce qu'il récupère les informations (login et mdp) du client ? 2 programmes distants ne peuvent utiliser les mêmes variables, du moins, je veux dire, si dans le client, le login qui est envoyé, pour lui est la variable $login, si je mes dans le serveur (pour qu'il puisse écrire dans la BDD) $login, il ne va pas écrire le login que lui a envoyé le client, si ?

Ma base de donnée donne cela, j'ai des tables pour les configurations et une qui se nomme "accounts". Dans celle-ci il y a un tableau avec comme première case: "AccountID" et une seconde avec "Password".
Comment aménager le code de façon à écrire le login dans "AccountID" et pareil pour "Password" ?

Merci en tout cas pour l'aide que vous me donnez, et merci pour le code !

Re: [..] Écrire dans une BDD SQL à distance

Posté : mar. 30 août 2011 13:57
par jchd
SQLite étant un moteur "embedded" (i.e. intégré à une ou plusierus applications), il n'a pas de structure client-serveur. Une BDD SQLite réside dans un unique fichier (journaux temporaires mis à part) il n'a pas à ajouter une couche d'autorisation d'accès. L'on peut d'ailleurs toujours en plaquer une par le mécanisme que le système de fichiers sous-jacent offre (droits d'accès au répertoire).

Ces fonctions X(), XX() permettent de "quoter" une chaîne littérale pour éviter un souci si elle contient une quote significative (on la double dans ce cas). Y() et YY() gère des BLOBS (valeurs binaires gébériques) et Z(), ZZ() des numériques.
X($s) équivaut à _SQLite_Escape($s)
XX($s) " ',' & _SQLite_Escape($s)
etc.

Les informations de login doivent être reçues par le serveur (via TCP par exemple). J'ai utilisé des variables "en dur" pour la simplicité du code.
Renommer Comptes en Accounts ne pose aucun problème.
Par contre, je recommande toujours d'utiliser une colonne Id (INTEGER PRIMARY KEY) explicite. Du coup renommer AccountID en Login ne pose pas plus de problème.

Re: [..] Écrire dans une BDD SQL à distance

Posté : jeu. 01 sept. 2011 02:26
par blacksoul305
Enfin je suis arrivé à mes fins !

J'ai donc un serveur qui reçoit les infos nécessaire via un client distant par le biais d'un serveur de chat IRC, un serveur donc qui appelle un programme qui lit dans la section "Username" et "Passord" les valeurs à écrire, ce programme ouvre Navicat, accède à ma BDD et à la table correspondante via la commande MouseClick() et enfin, quitte la table en sauvegardant les changements puis enfin, ferme le processus de Navicat.
D'accord la dernière partie est mais vraiment bidon (car elle ne fonctionnera pas à deux envois en même temps) mais je n'ai pas pu faire autrement...

Je remercie Sablier94 et Tlem pour leurs suggestions d'idées.
PandiPanda pour l'aide à coder la fonction client/serveur.
jchd pour les informations à propos de MySQL et SQLite et son code.

Je pense que je vous dois bien cela, voici les codes:

Serveur
► Afficher le texte
Client
► Afficher le texte
BDDWriter
► Afficher le texte
Je vous remercie une fois de plus !

EDIT: Voilà, j'aimerai porter une petite amélioration au niveau de mon programme ! J'ai essayé de la placer seul mais, j'u suis en fin compte pas arrivé. En fait j'ai placé une CheckBox qui, une fois cochée, m'envoie une valeur constante que le serveur est prêt à recevoir. Si il l'a reçoit, l'utilisateur a aimé, sinon, il ne l'a pas aimé. Bien sur, j'ai envie de voir si beaucoup de personnes ont aimés le programme donc, je constitue un autre fichier ini qui va contenir au fur et à mesure le nombre d'utilisateurs ayant aimés le programme. Cependant, je ne suis pas sur que le serveur la reçoit, et donc, je ne vois pas si l'utilisateur a aimé ou pas ...

Je vous laisse donc voir par vous même:

Serveur
► Afficher le texte
Client
► Afficher le texte
PS: si il était possible d'ajouter soit dans une section appart, soit dans un autre fichier .ini, le nombre de fois où le programme a été testé ? (du moins, le nombre de fois où il a envoyé des infos à l'ordinateur)
► Afficher le texte

Re: [..] Écrire dans une BDD SQL à distance

Posté : jeu. 01 sept. 2011 02:44
par PandiPanda
En vous basant sur l'envoi TCP() un peu plus haut vous auriez pu en tirez quelque chose ...

Dans le script "serveur";
remplacer la fonction _FileIniWrite($Quoi) par celle ci;
► Afficher le texte
Dans le script "client";
remplacer dans le case $Checkbox1 "TCPSend($masock, 25698)" par ceci;

Code : Tout sélectionner

TCPSend($masock, "PRIVMSG " & $channel & " :" & "Aimer" & @CRLF); envoi
Ca devrai être suffisant

Re: [..] Écrire dans une BDD SQL à distance

Posté : jeu. 01 sept. 2011 02:50
par blacksoul305
Super, c'est impeccable ! Je vais essayer de bosser sur ce code, car pour l'instant, c'est un peu comme le Tarot, du mal à rentrer ! Haha !

Merci encore PandiPanda !