![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как мне в delphi запустить импорт базы данних [D7, MySQL]
cchiko © (2009-01-25 23:34:00)Как мне в delphi запустить импорт базы данних.
Обычно я делаю так
C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql.exe --user=root < с:\db.sql
Как мне запустить на выполнение такую строчку дос комманды?
Anatoly Podgoretsky (2009-01-26 13:11:00) [1]Что бы не закрывалось - требуется запуска в консоли коммандного процессора.
С определенными допущениями это 'cmd ' + Filename
Параметры 'cmd можно посмотреть в справке
cchiko (2009-01-26 13:02:00) [2]
> CreateProcess
Я использую CreateProcess но ничего не выходит, окно открывается и сразу закрывается, я даже не могу рассмотреть что там за ошибка, но вроди как ошибка в команде, потому что, чтото похожее выдает mysql.exe когда не верно введена команда - справку с описанием всевозможных параметров. КОгда я делаю это вручную все зрабатывает нормально.
Привожу исходный код:
function ExecAndWait(const FileName, Params: ShortString; const WinState: Word;): boolean; export;
var
StartInfo: TStartupInfo;
ProcInfo: TProcessInformation;
CmdLine: ShortString;
begin
CmdLine := '"' + Filename + '" ' + Params;
FillChar(StartInfo, SizeOf(StartInfo), #0);
with StartInfo do
begin
cb := SizeOf(StartInfo);
dwFlags := STARTF_USESHOWWINDOW;
wShowWindow := WinState;
end;
Result := CreateProcess(nil, PChar( String( CmdLine ) ), nil, nil, false,
CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil,
PChar(ExtractFilePath(Filename)),StartInfo,ProcInfo);
if Result then
begin
WaitForSingleObject(ProcInfo.hProcess, INFINITE);
CloseHandle(ProcInfo.hProcess);
CloseHandle(ProcInfo.hThread);
end
else
begin
ShowMessage("Error");
end;
end;
Вызов этой функции происходит так:
ExecAndWait('C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql.exe',' --user=root < ' + ExtractFilePath(Application.ExeName) + 'db_dump.sql',sw_ShowNormal);
P.S. Спасибо за исправления ошибок, русский у меня хромает, просьба, если будут еще какие то ошибки, сообщим мне об этом.
Германн (2009-01-26 02:47:00) [3]
> KilkennyCat © (26.01.09 02:40) [2]
>
> Коммандос - с двумя :)
>
Голливуд идёт лесом. Святым или или ещё каким - это мне не интересно.
:)
CreateProcess
KilkennyCat (2009-01-26 02:40:00) [4]Коммандос - с двумя :)
WinExec
Германн (2009-01-26 02:11:00) [5]
> Как мне запустить на выполнение такую строчку дос комманды?
А причём тут конференция "Базы", если вопрос о том "Как мне запустить на выполнение такую строчку дос комманды?"
P.S.
Команда пишется с одной "м".