MS SQL Проверка подключения/авторизации/наличия объектов на сервере31.07.2023, 13:39. Показов 1728. Ответов 34
Метки нет (Все метки)
Добрый день!
Есть WinForms приложение, запрашивающее данные с сервера. Для его успешного функционирования нужно: 1. Доступность SQL сервера 2. Наличие определенной БД/учетных записей/прав доступа (стороннее серверное ПО установлено корректно) 3. Наличие кастомной хранимой процедуры, посредством которой запрашиваются данные. Есть ли устоявшиеся практики на счет таких проверок? Кликните здесь для просмотра всего текста
Сценарий: пользователь сконфигурировал подключение к серверу в приложении и нажал кнопку "Проверить". В случае неудачи приложение выводит сообщение, что именно пошло не так.
Ну то есть если начать с самого низа: какие могут быть методы на уровне DAL? Что они должны возвращать?
0
|
|
| 31.07.2023, 13:39 | |
|
Ответы с готовыми решениями:
34
Проверка наличия подключения к Интернету Проверка наличия пользователя на сервере дискорд |
|
14784 / 9558 / 1366
Регистрация: 21.01.2016
Сообщений: 36,046
|
|
| 01.08.2023, 09:24 | |
|
0
|
|
| 01.08.2023, 09:30 [ТС] | ||
|
Usaga,
0
|
||
|
14784 / 9558 / 1366
Регистрация: 21.01.2016
Сообщений: 36,046
|
|
| 01.08.2023, 09:41 | |
|
NewOrdered, ну, в таких кейсам обычно только подключение к СУБД проверяют. От силы ещё (если база позволяет) - версию схемы базы. Ну и всё. А какие-то проверки структуры базы производить... Зачем?
И что за кейс такой, что пользователь конфигурирует такие системно значимые вещи?
0
|
|
| 01.08.2023, 10:48 [ТС] | ||
|
Я написал десктопное приложение-клиент, которое эти данные запрашивает и отображает (типа дашборда). Пользователь в приложении сам добавляет источники данных (сервера): имя/адрес хоста, тип аутентификации и при необходимости учетные данные. На стороне сервера также есть кастомная ХП, которую вызывает клиент при запросе данных. На клиенте это не конфигурируется, но она должна присутствовать, иначе приложение не будет работать. Так вот смысл исходного вопроса: как проверить, что введенное пользователем работоспособно, включая наличие ХП на стороне сервера. Разумеется это станет ясно, когда клиент начнет опрос, но я хотел дать пользователю возможность проверить на этапе конфигурирования.
0
|
||
|
14784 / 9558 / 1366
Регистрация: 21.01.2016
Сообщений: 36,046
|
|
| 01.08.2023, 10:54 | |
|
NewOrdered, ну, если вопрос только в ОДНОЙ хранимке, то её наличие можно проверять и создавать, если права на сервере СУБД позволяют...
Хранимка же это обычный объект в базе, который можно чекнуть в информационной схеме. Но вообще: а не лучше текст запроса с клиента посылать? Тогда не надо греть голову хранимкой. Или так что-то громоздкое? Или DBA какой-то эти хранимки менять может по ходу дела?
0
|
|
|
|
|||||||
| 01.08.2023, 10:59 | |||||||
sqlConnection можно еще вывести всякие нужные данные...
1
|
|||||||
|
14784 / 9558 / 1366
Регистрация: 21.01.2016
Сообщений: 36,046
|
|
| 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
|
|||||||
|
14784 / 9558 / 1366
Регистрация: 21.01.2016
Сообщений: 36,046
|
||
| 01.08.2023, 11:25 | ||
|
0
|
||
| 01.08.2023, 11:41 [ТС] | |
|
0
|
|
|
14784 / 9558 / 1366
Регистрация: 21.01.2016
Сообщений: 36,046
|
|
| 01.08.2023, 11:43 | |
|
NewOrdered, ну, вот одна из возможностей упростить себе жизнь. Не надо проверять хранимку, создавать, обновлять, если логика запроса изменится...
0
|
|
|
|
||
| 01.08.2023, 12:25 | ||
|
Всё прочитал, так и не понял почему ТС себе пытается усложнить задачу. Usaga в каждом сообщении давал чёткие и понятные ответы. Где-то нужно просто волевое решение не усложнять; где-то нужно просто заложить чёткую структуру и не пытаться её проверять и доделывать. А то получается что вроде бы процедура должна быть, но почему-то мы её всё-таки проверим. Ну дак и проверишь. Пользователь завёл новое подключение - сразу выполнил запрос и сказал что он написал какую-то дрянь и это не будет работать.
0
|
||
|
14784 / 9558 / 1366
Регистрация: 21.01.2016
Сообщений: 36,046
|
|
| 01.08.2023, 12:46 | |
|
NewOrdered, кстати, хочу добавить ещё несколько вещей.
Проверка наличия хранимки подразуемевает, что твой сервис сможет её создать, в случае отсутствия. Но для этого у него должны быть права на изменение схемы базы, чего не требуется для обычной работы твоего дашборда. Это - первый момент. Ослабление защиты базы, причём серьёзное. Второй момент. Ты можешь проверить наличие хранимки, но ты не можешь проверить её актуальность (версию). Запрос же может меняться со временем. Как ты тут поступишь? Запросишь текст хранимки (если она в базе без флага ENCRYPTED, тогда не запросишь) и сравнишь с тем, что в сервисе хранится? А если они разлечаются, тогда что? Какая хранимка актуальнее? В базе или в программе? Версию хранимки ещё в базе хранить? Тогда уже две сущности нужно поддерживать. Ну и третий момент. Ты сам не можешь сказать, зачем именно хранимка нужно. Получается, что первые два пункта призваны решить проблему, который как бы и нет. Так получается? Поэтому мой совет: не занимайся фигнёй с этой хранимкой и проверками. Посылай в базу запрос на выгребание данных. Или серию запросов. И всё. Нет проблемы.
1
|
|
| 01.08.2023, 14:20 [ТС] | |
|
0
|
|
| 01.08.2023, 14:20 | |
|
Проверка наличия подключения к интернет-сети Проверка наличия файла на сервере локальной сети. Как настроить PAC скрипт для подключения к прокси с использованием авторизации на сервере?
Проверка наличия шрифта в системе и установить если отсуствует + проверка запущен ли проект с правами админа Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный домашний кинотеатр
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 и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|