Исходники.Ру - Программирование
Исходники
Статьи
Книги и учебники
Скрипты
Новости RSS
Магазин программиста

Главная » Статьи по программированию » C,С++ и C# - Все статьи »

Обсудить на форуме Обсудить на форуме

Динамический запуск сервера MS SQL

Следующий пример показывает, как на C++ динамически запускать MS SQL Server в Windows NT. Всё, что для этого потребуется, это включить в проект w95scm.lib, которая поставляется с SQL 7.0 CD.

#include "wn95scm.h" //находится на Sql7.0 CD
BOOL  StartSqlServer(LPSTR szErrorMsg)
{
     LPSTR       szService = "MSSQLServer";
     DWORD       dwServiceState, dwErr;
     BOOL        bControlSuccessful;

     bControlSuccessful = TRUE;    // состояние сервиса.
     dwServiceState = SQLSCMGetLocalServiceState(szService, &dwErr);
     while ((dwServiceState != 0) && (bControlSuccessful == TRUE))
     {
          if (dwServiceState == SERVICE_RUNNING)
               break;
          switch (dwServiceState)
          {
               case SERVICE_PAUSED:     // если в режиме паузы, то
                                        // даём команду продолжить работу.
                    bControlSuccessful =  SQLSCMLocalServiceControl(szService,
SQLSCMCmd_CONTINUE,&dwErr, 0, NULL);
                    break;
               case SERVICE_STOPPED:     // Если остановлен, то запускаем сервис
                    bControlSuccessful =  SQLSCMLocalServiceControl(szService,
SQLSCMCmd_START, &dwErr, 0, NULL);
                    break;
               default:// Если состояние 0, то возникла ошибка при определении
                       // состояния сервиса.
                    if (dwServiceState == 0)
                    {    // Error. Return failure.
                         sprintf(szErrorMsg, "Error %lu on attempt to determine
service state.", dwErr);
                         return (FALSE);
                    }
          }
          Sleep(5);
          dwServiceState = SQLSCMGetLocalServiceState(szService, &dwErr);
     }
     if (bControlSuccessful)
     {
          sprintf(szErrorMsg, "Error %lu returned on attempt to change service
state.", dwErr);
     }
     return (bControlSuccessful ? TRUE : FALSE);
}

Может пригодится:


Автор: http://infocity.kiev.ua/
Прочитано: 3580
Рейтинг:
Оценить: 1 2 3 4 5

Комментарии: (0)

Добавить комментарий
Ваше имя*:
Ваш email:
URL Вашего сайта:
Ваш комментарий*:
Код безопастности*:

Рассылка новостей
Рейтинги
© 2007, Программирование Исходники.Ру