C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Динамический запуск сервера MS SQL / Базы данных / Visual C++

Динамический запуск сервера 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);
    }