Wykonanie zewnetrznego skryptu przez MySQL

0

Witam
Moze ktos z Was spotkal sie z podobnym problemem. Mianowice chodzi o to ze z poziomu Visuala usiluje wykonac zewnetrzny skrypt mysql. Do tego uzywam funkcji _execvp. tak jak na ponizszym kodzie

  char *args[7];
   args[0] = "mysql";
   args[1] = "-h localhost";
   args[2] = "-u root";
   args[3] = "-phaslo";
   args[4] = "-D test";
   args[5] = "<C:\\skrypt.txt";
   args[6] = NULL;

   if(_execvp( args[0], args )==-1)
		printf("ERROR"); 

sciezka do mysql.exe jest dopisana do zmiennej PATH
funkcja nie zwraca bledu. Ale blad wystepuje po stronie serwera - niewlasciwa nazwa bazy (kod 1102).
Wyglada to tak jakby wartosci podane w args[5] i nastepne byly traktowane jak dalsza czesc nazwy bazy. Gdy args[5] jest pustym stringiem wszystko dziala poprawnie ale skrypt oczywiscie sie nie wykona.
Gdy takie samo polecenie wykonalem z linii komend windowsa (bez udzialu _execvp) wszystko dziala poprawnie i skrypt sie wykonuje.
Dodam iz skrypt jest poprawny. Wie ktos o co chodzi ??

0

Spróbuj zrobić coś takiego:

char *args[7];
   args[0] = "mysql";
   args[1] = "-h localhost";
   args[2] = "-u root";
   args[3] = "-phaslo";
   args[4] = "-D test";
   args[5] = "-e \"source C:\\skrypt.txt\"";
   args[6] = NULL;

   if(_execvp( args[0], args )==-1)
                printf("ERROR"); 

To: <C:\skrypt.txt, nie jest parametrem programu mysql tylko przekierowaniem strumienia, więc mysql traktował to jako część poprzedniego paramertu

1 użytkowników online, w tym zalogowanych: 0, gości: 1