-
Как мне в delphi запустить импорт базы данних.
Обычно я делаю так C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql.exe --user=root < с:\db.sql
Как мне запустить на выполнение такую строчку дос комманды?
-
> Как мне запустить на выполнение такую строчку дос комманды?
А причём тут конференция "Базы", если вопрос о том "Как мне запустить на выполнение такую строчку дос комманды?" P.S. Команда пишется с одной "м".
-
Коммандос - с двумя :)
WinExec
-
> KilkennyCat © (26.01.09 02:40) [2] > > Коммандос - с двумя :) >
Голливуд идёт лесом. Святым или или ещё каким - это мне не интересно. :) CreateProcess
-
> 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. Спасибо за исправления ошибок, русский у меня хромает, просьба, если будут еще какие то ошибки, сообщим мне об этом.
-
Что бы не закрывалось - требуется запуска в консоли коммандного процессора. С определенными допущениями это 'cmd ' + Filename Параметры 'cmd можно посмотреть в справке
|