Ответ правильный, ваше ходатайство:
+IPD,0,345:GET /?pin=12 HTTP/1.1
Host: 192.168.4.1
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,
Параметры в запросе на получение отправляют в URL, поэтому было бы то же самое сделать:
$.get("http://192.168.4.1:80/", {pin:12});
И [ 116]
$.get("http://192.168.4.1:80/?pin=12");
Это означает, что вы можете выполнять ваш запрос, как вы знаете, в VB.NET, но вы должны поместить в хост:
http://192.168.4.1:80/?pin=12
Ну, Сохраненный Procs может быть дополнительным уровнем абстракции или ряда функций/методов при рассмотрении базы данных как объект или сервис. Это может быть выгодно, так как можно скрыть детали конкретной реализации и изменить его, когда потребность быть, не повреждая приложение (как долго, поскольку Вы оставляете интерфейс, например, сохраненные proc параметры, одни). Кроме того, если можно скрыть детали таблицы позади ряда сохраненного procs, неважно, как кто-то получает доступ к базе данных, они только смогут взаимодействовать с ним с помощью методов, которые Вы разработали и записали для него-> существует меньше риска кого-то разжигание Excel и взламывание Вашей базы данных.
С другой стороны, Сохраненные Proc требуют обширного знания T-SQL, и Вы будете распространять свой бизнес и логику приложения через два набора кодовых баз, которые могут быть оборотной стороной. Что-либо, что можно сделать в сохраненном proc, может также быть сделано в ADO.NET с прямыми SQL-операторами, и это больше даже не медленнее.
Дальнейшим плюс для Сохраненного Procs является то, что, если что-то неправильно в Вашем proc, можно зафиксировать его просто путем развертывания proc с фиксацией - Вы не должны касаться своего приложения C#. Это может быть великим плюс в "размещенной" среде, если Вы только получаете 3 выпуска в год - применение текущих исправлений посредством фиксации Сохраненного Proc может быть Вашим живым средством сохранения затем!:-)
В целом: существует много за и против за или против сохраненного procs; я предложил бы, если Вы чувствуете себя довольными записью T-SQL, почему бы не дать ему попытку и видеть, как это работает на Вас. Если это чувствует к громоздкому или слишком негибкому или как слишком много работы в конечном счете, можно всегда переключаться назад на использование прямого SQL в приложении C#.
Просто мои 0,02$. Marc
Ну, Вы собираетесь закончить тем, что использовали ADO.NET, так или иначе... это кажется на значение хранимых процедур по сравнению с текстом команды. Существуют преимущества обоих, к сожалению, таким образом, это не простой вопрос, однако при рассмотрении инструментов как LINQ существует больше преимуществ для текста команды, так как это может быть более "компонуемо" (т.е. вызывающая сторона может добавить Skip
/Take
/Where
/OrderBy
и имейте его, влияют на полный запрос).
Другая опция, которая смешивает преимущества обоих, является табличными функциями (через UDFs) - они также имеют преимущество более сильных метаданных (трудно точно запросить схему хранимой процедуры).
Любой подход должен быть инжекционно-безопасным, пока Вы правильно используете параметры.
Два вопроса, на которые еще не ответили:
SProcs может быть помещен в схему и явиться олицетворением другой схемы. Это означает, что можно заблокировать вниз доступ к базе данных и дать пользовательские полномочия ТОЛЬКО, чтобы выполнить SProcs, не выбрать обновление и т.д., которое является очень хорошей премией безопасности.
Во-вторых, sproc может быть ЗНАЧИТЕЛЬНО быстрее в зависимости от какой операции Ваше выполнение. Если Ваше ограниченное сетью IO и Ваше способное для выполнения операций присвоения на данных, делая так в единственной хранимой процедуре вместо того, чтобы делать выборку ВСЕГО набора данных, обрабатывая его, то передача изменения даст Вам хорошее увеличение скорости.
То же идет для транзакций, если необходимо выполнить операции последовательно (т.е. изменить значение в двух таблицах сразу, которое включает некоторую логику), затем, необходимо будет держать транзакцию в течение времени, которое требуется, чтобы Вы вычислили значение и передачу назад в двух SQL-запросах, тогда как хранимая процедура может сделать это в единственной процедуре.
Позвольте мне перефразировать это: если Вы раскрываете данные, изменяя его в коде, и затем наличие SP обновляет DB с новыми значениями, или если Вы просто называете SP как "функцию".
Моя точка акцента, даже если Вы делаете манипулирование данными в коде, необходимо все еще только получать доступ к SPS на дб.
Делаете ли Вы это или имеете более сложный SPS, делают манипулирование данными, зависел бы от нескольких факторов:
Это действительно сводится к личному выбору, нет никакого правильного пути (хотя существует много неправильных путей...). Хотя важно остаться последовательным, совершенно приемлемо иметь различные типы доступа дб в Вашей системе, пока контекст/потребность выравнивает по ширине его.
Я сказал бы, выбирают, какой бы ни Вы являетесь самыми довольными и придерживаетесь этого - пока у Вас нет причины сделать это по-другому. Никакая причина быть догматичным об этом...
Я рекомендовал бы в соответствии с одной конвенцией или другим (или имеют Ваш код SQL как строки в Ваших классах или используют хранимые процедуры). Существуют бесчисленные дебаты об этом, но действительно нет никаких важных причин выбрать один или другой.