Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11639
Последний выпуск: 19.06.2015

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

Источник: www.исходники.ru

Следующий пример показывает, как на 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);
    }

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог