db 를 mysql 을 사용하고 있습니다.
프로그램 실행전 c:\mysql\bin 이동후 mysqld --standalone 명령어를 실행 해야만 mysql 이 start 되서 db 연동이 됐니다.
그래서 form create 할때
WinExec( PChar('D:\ICMCNET\' + 'startm.bat' ), SW_SHOW ); 이와같은
구문을 삽입하였습니다. 그런데 프로그램 종료 후 다시 시작할 경우 이미 mysql 이 실행상태라
WinExec( PChar('D:\ICMCNET\' + 'startm.bat' ), SW_SHOW ); 또하면
도스상 에러 메세지가 나옴니다. 프로그램 과 db 연동에는 상관이 없는데
그리좋아 보이지는 않더라구여 그래서 2가지 방법좀 알려주시라구여
첫째. 현재 mysqld 가 실행중이라면 명령어 실행하지 않음
둘째. 프로그램 종료시 mysqld 가 종료되게 함
어떻게 해야 하나여 님들에 많은 조언부탁드립니다.
답변이라고 하기는 뭐하고, 그냥 참고로 생각해 보시기 바랍니다.
우선 MySQL이 실행되어 있는지 확인하는 방법으로 CreateToolHelp32Snapshot API를 이용하여 현재 실행중인 프로세스 중에서 MySQL 관련 프로세스가 있는지 확인해 보는 방법이 있을것 같네요. 그리고, 리눅스에서 MySQL이 실행되면, 자신의 PID를 기록해 두는 파일이 있습니다. 마찬가지로 윈도우즈용 MySQL도 동일한 것이 있을 것이라 생각되는데, 그 파일이 있다면, 실행중이라고 생각할 수 있겠죠.
종료는 startm.bat 와 마찬가지로. endm.bat 파일을 만들어서 실행시키시면 되겠네요.
그럼, 도움이 되셨길~