ah ... rekapitulieren wir mal:
du wolltest ein prog dass eine abfrage tätigt, und das ergebnis in eine umgebungsvariable schmeißt ... so wie ich das hier aber jetzt sehe ist da jetzt pustekuchen mit umgebungsvariable, und du willst eigentlich aus einer laufenden anwendung abfragen stellen ... (via umgebungsvariable setzt vorraus, dass deine abfrage gelaufen sein muss bevor das andere programm welches die daten verarbeitet überhaupt startet)
sprich die projektausrichtung und die spezifizierten anforderungen machen gerade eine kehrtwende um 180° ...
normalerweise wären wir jetzt an dem punkt wo du bekommen hast was du bestellt hast, was aber nicht das ist was du haben willst ...
was du vermutlich haben willst ist eine integration eines putty tunnels in deine bestehende anwendung ...
sprich nix mit umgebungsvariable, und auch nix mit ausführen einer abfrage ...
der putty tunnel soll aufgebaut werden wenn deine anwendung ihn braucht, und danach willst du solange du abfragen stellen willst den tunnel benutzen ...
abgesehen davon ist der code den du gepostet hast natives c++ (also nix mit .net)
ich habs nicht getestet, aber ich vermute mal dein code da funktioniert soweit ...
wenn ich mal deine aussagen und diesen code versuche in einklang zu bringen, bietet sich mir folgendes bild:
du willst bevor du deine mysql verbindung aufbaust, den tunnel aufbauen, und nachdem du die verbindung nicht mehr brauchst, den tunnel abbauen ...
das erreichst du in dem du vor deinen connect befehl einen CreateProcess() winapi-call einbaust, der putty mit der entsprechenden befehlszeile startet ...
sieht ungefähr so aus wobei tun_file den pfad zur putty.exe enthalten sollte und tun_args die befehlszeilen argumente (siehe settings.xml):
Code:
STARTUPINFO si;
PROCESS_INFORMATION pi;
CreateProcess(
tun_file,
tun_args,
NULL,
NULL,
false,
DETACHED_PROCESS,
NULL,
NULL,
&si,
&pi
)
nachdem dein prog den tunnel nicht mehr braucht, kann es TerminateProcess(pi.hProcess,0) aufrufen um putty wieder zu killen ...
edit: solltest du probleme damit bekommen, dass der tunnel noch nicht verfügbar ist, wenn dein mysql connect durchläuft...
Code:
WaitForInputIdle(pi.hProcess,INFINITE);
vor den mysql connect aufruf