powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Пытаюсь программно остановить sql server - GetLastError=1060
15 сообщений из 15, страница 1 из 1
Пытаюсь программно остановить sql server - GetLastError=1060
    #40097739
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь программно остановить sql server.
Windows 10, SQL Server 8.
Написал ф-ю для определения handle сервиса
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
SC_HANDLE GetServiceHandle(char *ServiceName){
char CompName[MAX_COMPUTERNAME_LENGTH + 1];
ULONG nSize=MAX_COMPUTERNAME_LENGTH;
wchar_t CompNameW[MAX_COMPUTERNAME_LENGTH + 1];
SC_HANDLE sc;
if(!GetComputerNameA(CompName,&nSize)){
    Msg(SERROR,NULL,"Did not get computer name");
    return NULL;
}
ConvertCharToWchar_t(CompName,CompNameW);
wchar_t BaseW[MAXBASENAMELEN];
ConvertCharToWchar_t(SERVICES_ACTIVE_DATABASE,BaseW);

sc=OpenSCManagerW(CompNameW,BaseW, GENERIC_READ/*SC_MANAGER_ALL_ACCESS*/);
int err=GetLastError();
AnsiString s="";
switch(err){
    case ERROR_ACCESS_DENIED:
        s="The requested access was denied.";
        break;
    case ERROR_DATABASE_DOES_NOT_EXIST:
        s="The specified database does not exist.";
        break;
}
if(!s.IsEmpty()){
    Msg(SERROR,NULL,s.c_str());
    return NULL;
}

// Get a handle to the service.
// https://docs.microsoft.com/ru-ru/windows/win32/services/stopping-a-service
SC_HANDLE hService;  // service handle
hService = OpenService( sc,ServiceName /* из cfg */,
  SERVICE_STOP | SERVICE_QUERY_STATUS | SERVICE_ENUMERATE_DEPENDENTS);
if (!hService){
    err=GetLastError();
    Msg(SERROR,NULL, "OpenService failed. GetLastError=%d", err);
        CloseServiceHandle(sc);
        return NULL;
}
return hService;
}


строока

hService = OpenService

даёт GetLastError=1060 - Указанная служба не существует в качестве установленной службы.
имя сервиса указано верно, т.к. командный файл
net stop "SQL Server (SQLEXPRESS)" >1.1
работал правильно
Я не понимаю что значит "Указанная служба не существует в качестве установленной службы"
В инете порылся, кое что попробовал, но пока ничего не помогает
...
Рейтинг: 0 / 0
Пытаюсь программно остановить sql server - GetLastError=1060
    #40097747
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну шо тут нипанятного?
Не тот handle или не туда.
WinAPI - не для слабаков.

проще надо быть (специальный язык для "новых программистов")
https://stackoverflow.com/questions/11062841/start-stop-service-from-form-app-c-sharp
...
Рейтинг: 0 / 0
Пытаюсь программно остановить sql server - GetLastError=1060
    #40097754
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но если "очень хочется через WinAPI" - первым делом разучи получение списка имен служб.
Служба имеет два имени: Понятное и Короткое.
Не исключено, что вызов WinAPI работает только с Коротким.
...
Рейтинг: 0 / 0
Пытаюсь программно остановить sql server - GetLastError=1060
    #40097755
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всё проверял
...
Рейтинг: 0 / 0
Пытаюсь программно остановить sql server - GetLastError=1060
    #40097759
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
muk07
всё проверял

Не смеши.
Вот тебе скрижаль с горы синайот мелкософт.
https://docs.microsoft.com/ru-ru/windows/win32/services/stopping-a-service

Потренируйся на кошках.
https://www.codeproject.com/Articles/1098263/Interact-with-Windows-Services-in-Cplusplus
...
Рейтинг: 0 / 0
Пытаюсь программно остановить sql server - GetLastError=1060
    #40097779
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как-то замысловато, проще использовать консольное средство управления службами, SC, к примеру.
...
Рейтинг: 0 / 0
Пытаюсь программно остановить sql server - GetLastError=1060
    #40097787
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222, пожалуйста, сбросьте высокомерие и не утомляйте себя ответами
...
Рейтинг: 0 / 0
Пытаюсь программно остановить sql server - GetLastError=1060
    #40097793
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
muk07
имя сервиса указано верно, т.к. командный файл
net stop "SQL Server (SQLEXPRESS)" >1.1
работал правильно

muk07
всё проверял

https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-openservicea
lpServiceName

The name of the service to be opened. This is the name specified by the lpServiceName parameter of the CreateService function when the service object was created, not the service display name that is shown by user interface applications to identify the service.
...
Рейтинг: 0 / 0
Пытаюсь программно остановить sql server - GetLastError=1060
    #40097803
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
см. прилагаемую картинку
...
Рейтинг: 0 / 0
Пытаюсь программно остановить sql server - GetLastError=1060
    #40097808
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди пишут, что это баг windows.
при подстановке MSSQL$SQLEXPRESS (конечно проверял вчера ещё)
GetLastError=5 (файл не найден)
Схожу на форум windows, может помогут.
...
Рейтинг: 0 / 0
Пытаюсь программно остановить sql server - GetLastError=1060
    #40097829
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
muk07
Люди пишут, что это баг windows.
при подстановке MSSQL$SQLEXPRESS (конечно проверял вчера ещё)
GetLastError=5 (файл не найден)
Схожу на форум windows, может помогут.


Подобные вещи пишут такие же горе-программисты.

muk07

GetLastError=5 (файл не найден)

Access deny.

Учись, студент.

Error Code 5 is a Windows error code that appears when the user does not have sufficient permission to access the requested file or location. It appears when the software was denied access to a location for the purposes of saving, copying, opening, or loading files.
...
Рейтинг: 0 / 0
Пытаюсь программно остановить sql server - GetLastError=1060
    #40097862
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Малоуважаемый aleks222, где вас воспитывали?
Ни одного полезного комментария.
Для справки: "студент" старше вас на несколько десятков лет.
Проблему я решил почистив windows, грамотей вы наш спесивый.
...
Рейтинг: 0 / 0
Пытаюсь программно остановить sql server - GetLastError=1060
    #40097878
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
muk07
Малоуважаемый aleks222, где вас воспитывали?
Ни одного полезного комментария.
Для справки: "студент" старше вас на несколько десятков лет.
Проблему я решил почистив windows, грамотей вы наш спесивый.


Иных учить - тяжелый крест.

ЗЫ. Знатный сказочник.
Чем можно засрать windows, чтобы службы писали разные ошибки, но не останавливались?
Причем, штатные утилиты управления службами, работающие точно через тот же API - работают.
Когнитивный диссонанс.
...
Рейтинг: 0 / 0
Пытаюсь программно остановить sql server - GetLastError=1060
    #40097905
shalomb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А зачем весь ,этот пост ,ни один администратор не даст вам передергивать SQL .Так можно будет легко опустить сервак и все пользователи нах.
...
Рейтинг: 0 / 0
Пытаюсь программно остановить sql server - GetLastError=1060
    #40097916
Фотография SIMPLicity_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalomb
А зачем весь ,этот пост ,ни один администратор не даст вам передергивать SQL .Так можно будет легко опустить сервак и все пользователи нах.


Почему бы админу не рестартануть скульсервер?
Странная задача сама-по-себе,... но я вот иногда стопарю работающие серваки.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Пытаюсь программно остановить sql server - GetLastError=1060
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]