ListBox i ADOQuery

0

Witam. Czy ktoś wie w jaki sposób przekazać do ADOQuery lub ADOCommand skrypt z zapytaniem z ListBoxa. W listBoxie mam skrypt "wciągnięty" z dysku z pliku SQL. Próbowałem tak:
try
ADOQuery1.SQL.Text:= ListBox1.Items.Text;
ADOQuery1.ExecSQL;
except
showmessage('blad');
end;

Ale niestety zapytanie się nie wykonuje. Plik po imporcie do phpMyAdmina działa prawidłowo.
Baza mysql, delphi 7.

0

Znalazłem inne rozwiązanie ale nie bardzo chce zadziałać. Chodzi mi o mozliwość uruchomienia mysqldump bezpośrednio z delphi.

shellexecute(self.Handle,pchar('open'),
pchar('C:\usr\mysql\bin\mysqldump.exe'),
pchar('-u root -B -h localhost -R -r "c:\kopia.sql" mojabaza'),
pchar('C:\usr\mysql\bin\mysqldump.exe'),sw_normal);

A może ktoś zna lepszą metodę, wiem że mozna przez pliki bat ale nigdzie nie mogę znaleźć informacji jak przekazać ścieżkę pliku sql, który chcę przywrócić do tego batcha. Jaką komendę należy umieścić w batchu.

Batcha uruchamiam tak: ShellExecute(Handle, 'open', 'odtworz.bat', nil, './backup', SW_NORMAL);

W batchu mam
cd C:\usr\mysql\bin
mysql -B -u root < c:/kopia.sql
Plik bat się uruchamia, kopia się odtwarza ale jak przekazać ścieżkę z Delphi tego pliku do batcha tak żeby c:/kopia.sql nie była wpisana na stałe. Chciałbym, aby użytkownik mógł sam wybrać dowolny plik sql.

Może problem jest banalny ale nie mogę sobie poradzić. Proszę o pomoc.

0

A może sprobowalbys backupa wczytać do jakiegoś Streama , usunąc komentarze i z tego co zostanie przejechać ExtractStrings z sepraratorem średnika ? Otrzymasz wtedy gotowe zapytania do wykonania w pętli.
Trochę może to toporne, ale bez uzycia zewnetrznych mechanizmow ;-)
Istnieja tez gotowe komponenty do tego, ale nie wiem czy sa darmowe. W MyDacu w kazdym razie cos takiego jest.

0

Pozostane przy pliku bat. Udało mi się przekazać parametr
w pliku bat piszę mysql -B -u root < %1
,a w delphi ShellExecute(Handle, 'open', 'odtworz.bat','c:/kopia.sql', './backup', SW_NORMAL);

Kombinuje jeszcze z tym c:/kopia.sql. Poprzez OpenDialog wyciagam ściezkę do Labela.
Chciałbym z Label.Caption przerzucić tą ścieżkę jako parametr. Ale w ShellExecute jest to jako PAnsiChar. Jak mogę to zrobić ?

0

Ok. Problem rozwiązałem, banalny był. Wystarczyło dodać PChar.
ShellExecute(Handle, 'open', 'odtworz.bat',PChar(Label2.Caption), './backup', SW_NORMAL);

Tak wygląda przekazywanie do pliku bat paramateru, którym jest ściezka w Label2 po kliknięciu OpenDialog.
Parametr jest przekazywany i wszystko działa. Dzięki za chęci.

pozdro

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