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

Главная » Статьи по программированию » Visual C++ - Базы данных »

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

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

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

// находится на Sql7.0 CD
#include "wn95scm.h"

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;
            // Если состояние 0, то возникла ошибка при определении
            // состояния сервиса.
            default:
                // Error. Return failure.
                if (dwServiceState == 0) {    
                    sprintf(szErrorMsg, "Error %lu on attempt to
                                         determineservice 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);
    }

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


Автор:
Прочитано: 5182
Рейтинг:
Оценить: 1 2 3 4 5

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

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

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