MS SQL Проверка подключения/авторизации/наличия объектов на сервере31.07.2023, 13:39. Показов 1736. Ответов 34
Метки нет (Все метки)
Добрый день!
Есть WinForms приложение, запрашивающее данные с сервера. Для его успешного функционирования нужно: 1. Доступность SQL сервера 2. Наличие определенной БД/учетных записей/прав доступа (стороннее серверное ПО установлено корректно) 3. Наличие кастомной хранимой процедуры, посредством которой запрашиваются данные. Есть ли устоявшиеся практики на счет таких проверок? Кликните здесь для просмотра всего текста
Сценарий: пользователь сконфигурировал подключение к серверу в приложении и нажал кнопку "Проверить". В случае неудачи приложение выводит сообщение, что именно пошло не так.
Ну то есть если начать с самого низа: какие могут быть методы на уровне DAL? Что они должны возвращать?
0
|
|
| 31.07.2023, 13:39 | |
|
Ответы с готовыми решениями:
34
Проверка наличия подключения к Интернету Проверка наличия пользователя на сервере дискорд |
|
14790 / 9564 / 1367
Регистрация: 21.01.2016
Сообщений: 36,060
|
|
| 01.08.2023, 09:24 | |
|
0
|
|
| 01.08.2023, 09:30 [ТС] | ||
|
Usaga,
0
|
||
|
14790 / 9564 / 1367
Регистрация: 21.01.2016
Сообщений: 36,060
|
|
| 01.08.2023, 09:41 | |
|
NewOrdered, ну, в таких кейсам обычно только подключение к СУБД проверяют. От силы ещё (если база позволяет) - версию схемы базы. Ну и всё. А какие-то проверки структуры базы производить... Зачем?
И что за кейс такой, что пользователь конфигурирует такие системно значимые вещи?
0
|
|
| 01.08.2023, 10:48 [ТС] | ||
|
Я написал десктопное приложение-клиент, которое эти данные запрашивает и отображает (типа дашборда). Пользователь в приложении сам добавляет источники данных (сервера): имя/адрес хоста, тип аутентификации и при необходимости учетные данные. На стороне сервера также есть кастомная ХП, которую вызывает клиент при запросе данных. На клиенте это не конфигурируется, но она должна присутствовать, иначе приложение не будет работать. Так вот смысл исходного вопроса: как проверить, что введенное пользователем работоспособно, включая наличие ХП на стороне сервера. Разумеется это станет ясно, когда клиент начнет опрос, но я хотел дать пользователю возможность проверить на этапе конфигурирования.
0
|
||
|
14790 / 9564 / 1367
Регистрация: 21.01.2016
Сообщений: 36,060
|
|
| 01.08.2023, 10:54 | |
|
NewOrdered, ну, если вопрос только в ОДНОЙ хранимке, то её наличие можно проверять и создавать, если права на сервере СУБД позволяют...
Хранимка же это обычный объект в базе, который можно чекнуть в информационной схеме. Но вообще: а не лучше текст запроса с клиента посылать? Тогда не надо греть голову хранимкой. Или так что-то громоздкое? Или DBA какой-то эти хранимки менять может по ходу дела?
0
|
|
|
|
|||||||
| 01.08.2023, 10:59 | |||||||
sqlConnection можно еще вывести всякие нужные данные...
1
|
|||||||
|
14790 / 9564 / 1367
Регистрация: 21.01.2016
Сообщений: 36,060
|
|
| 01.08.2023, 11:01 | |
|
Andrey-MSK, ему надо не просто подключение к базе, но и наличие хранимки проверить. Но это одним запросом можно сделать. Оно и корректность строки подключения проверит, и наличие хранимки.
0
|
|
| 01.08.2023, 11:13 [ТС] | ||||
|
Добавлено через 3 минуты
0
|
||||
|
|
|||||||
| 01.08.2023, 11:16 | |||||||
|
NewOrdered,
Добавлено через 1 минуту NewOrdered, Это для MS SQL Server
1
|
|||||||
|
14790 / 9564 / 1367
Регистрация: 21.01.2016
Сообщений: 36,060
|
||
| 01.08.2023, 11:25 | ||
|
0
|
||
| 01.08.2023, 11:41 [ТС] | |
|
0
|
|
|
14790 / 9564 / 1367
Регистрация: 21.01.2016
Сообщений: 36,060
|
|
| 01.08.2023, 11:43 | |
|
NewOrdered, ну, вот одна из возможностей упростить себе жизнь. Не надо проверять хранимку, создавать, обновлять, если логика запроса изменится...
0
|
|
|
|
||
| 01.08.2023, 12:25 | ||
|
Всё прочитал, так и не понял почему ТС себе пытается усложнить задачу. Usaga в каждом сообщении давал чёткие и понятные ответы. Где-то нужно просто волевое решение не усложнять; где-то нужно просто заложить чёткую структуру и не пытаться её проверять и доделывать. А то получается что вроде бы процедура должна быть, но почему-то мы её всё-таки проверим. Ну дак и проверишь. Пользователь завёл новое подключение - сразу выполнил запрос и сказал что он написал какую-то дрянь и это не будет работать.
0
|
||
|
14790 / 9564 / 1367
Регистрация: 21.01.2016
Сообщений: 36,060
|
|
| 01.08.2023, 12:46 | |
|
NewOrdered, кстати, хочу добавить ещё несколько вещей.
Проверка наличия хранимки подразуемевает, что твой сервис сможет её создать, в случае отсутствия. Но для этого у него должны быть права на изменение схемы базы, чего не требуется для обычной работы твоего дашборда. Это - первый момент. Ослабление защиты базы, причём серьёзное. Второй момент. Ты можешь проверить наличие хранимки, но ты не можешь проверить её актуальность (версию). Запрос же может меняться со временем. Как ты тут поступишь? Запросишь текст хранимки (если она в базе без флага ENCRYPTED, тогда не запросишь) и сравнишь с тем, что в сервисе хранится? А если они разлечаются, тогда что? Какая хранимка актуальнее? В базе или в программе? Версию хранимки ещё в базе хранить? Тогда уже две сущности нужно поддерживать. Ну и третий момент. Ты сам не можешь сказать, зачем именно хранимка нужно. Получается, что первые два пункта призваны решить проблему, который как бы и нет. Так получается? Поэтому мой совет: не занимайся фигнёй с этой хранимкой и проверками. Посылай в базу запрос на выгребание данных. Или серию запросов. И всё. Нет проблемы.
1
|
|
| 01.08.2023, 14:20 [ТС] | |
|
0
|
|
| 01.08.2023, 14:20 | |
|
Проверка наличия подключения к интернет-сети Проверка наличия файла на сервере локальной сети. Как настроить PAC скрипт для подключения к прокси с использованием авторизации на сервере?
Проверка наличия шрифта в системе и установить если отсуствует + проверка запущен ли проект с правами админа Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последнея моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки
Правым кликом по серверу -> отладочная информация -> edit
Заменить "net": "raw", на "net": "tcp",
Нажать кнопку reload.
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|