Bonjour,
j'essaye actuellement d’exécuter des requêtes SQL sur un serveur distant qui est connecter à un serveur mysql en local (local pour lui pas pour moi ^^) tout d'abord voici ma première façon de procéder :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 instruction = "mysqltool.sh query RReport 'SELECT * FROM T_OFF '"; var cmd = cSSHRR.RunCommand(instruction); var output = cmd.Result; MessageBox.Show("iic" + output.ToString()) ;
le résultat est vide.
on pourrais pensé que le résultat devrai être placé dans un tableau mais j'ai bien essayer en bouclant avec un wile(de la même manière que j'avais l’habitude pour d'autre bout de code) ça ne marche pas, il rentre dans le while mais le tableau est vide donc il ne ressort rien.
J'ai essayé avec un CRATE TABLE qui fonctionnais sous putty avec la même méthode mysqltool.sh (indépendant d'un éventuel retour, afin de tester), mais dans mon IDE(HP UFT) pas moyen après verification rien n'est créé.
Je me dit donc que tout simplement la requête n'est pas exécuter sur mon serveur distant mais c'est la le plus étrange j'ai beaucoup de code qui utilise cette façon de faire pour la connexion et l’exécution de commande et aucun problème (tant que je ne touche pas à mysql visiblement ex : cd /home/.... && cp blala...) bref, les commandes linux marche, et bien que celle si dessus dans la variable "instruction" fonctionne si je l'entre directement via putty sur mon serveur, comme je l'ai dit, impossible sous mon IDE je ne comprend pas pourquoi .
cela viens forcément de la méthode mysqltoo,l qui fonctionne en manuel mais pas lors de la compilation sous IDE, ce qui est extrêmement déroutant car c'est une commande exécuter sous linux comme un "cd .." . Avant j'avais des problèmes de retour car je rentrait sous mySql et il ne fessait pas le pont mysql>linux>ma-machine, mais la je reste sur linux, auquel je suis connecter avec une commande classique, qui fonctionne comme la requête, a laquelle je demande juste "écrire et exécuter" (comme j'ai fait pour 60% de mon code) et ...non ca veux pas >< . A croire qu'il ne l’écrit pas et lance à vide --'.
(j'espère avoir été assez clair ^^ ) je suis ouvert à toute suggestion
La deuxième méthode (pour le même travail) que j'ai aborder ouvre lui un problème de connexion, en effet je me connecte dans un premier temps sur le serveur distant, puis lui indique que je me connecte en local sur la machine distante. Mais il me ressort des résultats de mysql sur MA machine local et non pas celle sur le serveur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 using(var client = new SshClient("172.123.21.74", "USER", "MDP")) // establishing ssh connection to server where MySql is hosted { client.Connect(); if (client.IsConnected) { var portForwarded = new ForwardedPortLocal("127.0.0.1", 0, "127.0.0.1", 22); client.AddForwardedPort(portForwarded); portForwarded.Start(); using (MySqlConnection con = new MySqlConnection("SERVER=127.0.0.1;UID=root;PASSWORD=_merlin;DATABASE=RefReport")) { using (MySqlCommand com = new MySqlCommand("SELECT * FROM T_OFF", con)) { com.CommandType = CommandType.Text; DataSet ds = new DataSet(); MySqlDataAdapter da = new MySqlDataAdapter(com); da.Fill(ds); foreach (DataRow drow in ds.Tables[0].Rows) { System.Diagnostics.Debug.WriteLine("From MySql: " + drow[1].ToString()); } } } client.Disconnect(); } else { System.Diagnostics.Debug.WriteLine("Client cannot be reached..."); } }
Merci d'avoir pris le temps de me lire ^^ et merci d'avance pour vos réponse que j'attend avec impatience .
Partager