问题是:取出MYSQL的数据库名
我的方法是:
WinExec('mysqlshow > e:\tnes\bin\tnes_log_ss.txt',SW_hide);
try
loadstring:=Tstringlist.Create;
while not FileExists('e:\tnes\bin\tnes_log_ss.txt') do;
loadstring.LoadFromFile('e:\tnes\bin\tnes_log_ss.txt');
showmessage(loadstring.txt);
finally
freeandnil(loadstring);
end;
可是输出的文件tnes_log_ss.txt为空,单独执行'mysqlshow > e:\tnes\bin\tnes_log_ss.txt又没有任何问题,奇怪的是在屏幕显示瞬间看到他执行的是“mysqlshow 1> e:\tnes\bin\tnes_log_ss.txt”为什么,参数 /c /s都加过,没有用
我的方法是:
WinExec('mysqlshow > e:\tnes\bin\tnes_log_ss.txt',SW_hide);
try
loadstring:=Tstringlist.Create;
while not FileExists('e:\tnes\bin\tnes_log_ss.txt') do;
loadstring.LoadFromFile('e:\tnes\bin\tnes_log_ss.txt');
showmessage(loadstring.txt);
finally
freeandnil(loadstring);
end;
可是输出的文件tnes_log_ss.txt为空,单独执行'mysqlshow > e:\tnes\bin\tnes_log_ss.txt又没有任何问题,奇怪的是在屏幕显示瞬间看到他执行的是“mysqlshow 1> e:\tnes\bin\tnes_log_ss.txt”为什么,参数 /c /s都加过,没有用
var
si : STARTUPINFO ;
pi : PROCESS_INFORMATION;
begin
ZeroMemory(@si, sizeof(si));
si.cb := sizeof(si);
ZeroMemory(@pi, sizeof(pi));
si.dwFlags := STARTF_USESHOWWINDOW;
si.wShowWindow := SW_HIDE;
if CreateProcess(nil, 'cmd.exe /k c:\a.bat', nil, nil, FALSE, 0, nil, nil, si, pi) then
begin
WaitForSingleObject( pi.hProcess, INFINITE );
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
end;
Memo1.Lines.LoadFromFile('e:\tnes\bin\tnes_log_ss.txt');
end;建一个c:\a.bat内空
mysqlshow > e:\tnes\bin\tnes_log_ss.txt
exit