Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Пытаюсь программно остановить sql server - GetLastError=1060 / 15 сообщений из 15, страница 1 из 1
15.09.2021, 10:52
    #40097739
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пытаюсь программно остановить sql server - GetLastError=1060
Пытаюсь программно остановить 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
15.09.2021, 11:15
    #40097747
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пытаюсь программно остановить sql server - GetLastError=1060
Ну шо тут нипанятного?
Не тот handle или не туда.
WinAPI - не для слабаков.

проще надо быть (специальный язык для "новых программистов")
https://stackoverflow.com/questions/11062841/start-stop-service-from-form-app-c-sharp
...
Рейтинг: 0 / 0
15.09.2021, 11:29
    #40097754
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пытаюсь программно остановить sql server - GetLastError=1060
Но если "очень хочется через WinAPI" - первым делом разучи получение списка имен служб.
Служба имеет два имени: Понятное и Короткое.
Не исключено, что вызов WinAPI работает только с Коротким.
...
Рейтинг: 0 / 0
15.09.2021, 11:32
    #40097755
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пытаюсь программно остановить sql server - GetLastError=1060
всё проверял
...
Рейтинг: 0 / 0
15.09.2021, 11:46
    #40097759
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пытаюсь программно остановить sql server - GetLastError=1060
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
15.09.2021, 13:00
    #40097779
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пытаюсь программно остановить sql server - GetLastError=1060
Как-то замысловато, проще использовать консольное средство управления службами, SC, к примеру.
...
Рейтинг: 0 / 0
15.09.2021, 13:36
    #40097787
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пытаюсь программно остановить sql server - GetLastError=1060
aleks222, пожалуйста, сбросьте высокомерие и не утомляйте себя ответами
...
Рейтинг: 0 / 0
15.09.2021, 13:54
    #40097793
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пытаюсь программно остановить sql server - GetLastError=1060
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
15.09.2021, 14:15
    #40097803
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пытаюсь программно остановить sql server - GetLastError=1060
см. прилагаемую картинку
...
Рейтинг: 0 / 0
15.09.2021, 14:28
    #40097808
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пытаюсь программно остановить sql server - GetLastError=1060
Люди пишут, что это баг windows.
при подстановке MSSQL$SQLEXPRESS (конечно проверял вчера ещё)
GetLastError=5 (файл не найден)
Схожу на форум windows, может помогут.
...
Рейтинг: 0 / 0
15.09.2021, 15:48
    #40097829
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пытаюсь программно остановить sql server - GetLastError=1060
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
15.09.2021, 17:57
    #40097862
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пытаюсь программно остановить sql server - GetLastError=1060
Малоуважаемый aleks222, где вас воспитывали?
Ни одного полезного комментария.
Для справки: "студент" старше вас на несколько десятков лет.
Проблему я решил почистив windows, грамотей вы наш спесивый.
...
Рейтинг: 0 / 0
15.09.2021, 19:19
    #40097878
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пытаюсь программно остановить sql server - GetLastError=1060
muk07
Малоуважаемый aleks222, где вас воспитывали?
Ни одного полезного комментария.
Для справки: "студент" старше вас на несколько десятков лет.
Проблему я решил почистив windows, грамотей вы наш спесивый.


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

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


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


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