Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WinForms, .Net Framework Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4 5   вперед  Ctrl      все
 Re: SQL код в С#?  [new]
Диез
Member

Откуда: Столица Попозже.
Сообщений: 894
D129


Реально спасибо. Видел пару раз в коде, но не использовал.
а для чего это? что это дает? я дал выдержку из кода, реально Lcn_ptrStrgId - не хардкодед...
Чем лучше использование параметров?


Если параметр строковый, да еще вводимый пользователем, можно при логине получить что-нибудь типа:
Select * from Users where UserName= 'ivan'; delete from Users -- ' and PassWord = '?????'

Формат даты... У каждого, наверное, в шкафу лежит скелет процедуры DateToSqlDate ;))

Производительность лучше,если один запрос много раз делать с разным значением параметра.

И, ессно, так красивее :)
11 сен 07, 15:04    [4649838]     Ответить | Цитировать Сообщить модератору
 Re: SQL код в С#?  [new]
maXmo
Member

Откуда: Моск.
Сообщений: 8541
что там читать? Достаточно самому написать ToSqlString и всё станет понятно :)
11 сен 07, 15:05    [4649847]     Ответить | Цитировать Сообщить модератору
 Re: SQL код в С#?  [new]
maXmo
Member

Откуда: Моск.
Сообщений: 8541
Диез
Формат даты... У каждого, наверное, в шкафу лежит скелет процедуры DateToSqlDate ;))
:))
+1
11 сен 07, 15:08    [4649871]     Ответить | Цитировать Сообщить модератору
 Re: SQL код в С#?  [new]
LR
Member

Откуда: 8P8C
Сообщений: 2423
D129
3. ?

Если это mssql, то откомпилированный план выполнения (помещаемый в процедурный кеш) параметризованного запроса может быть использован многократно (для разных значений параметров) ?
11 сен 07, 15:08    [4649876]     Ответить | Цитировать Сообщить модератору
 Re: SQL код в С#?  [new]
maXmo
Member

Откуда: Моск.
Сообщений: 8541
D129
в нашем проэкте можно не думать об этом... нету доступа извне...
програ-ноумен?
11 сен 07, 15:09    [4649883]     Ответить | Цитировать Сообщить модератору
 Re: SQL код в С#?  [new]
Roman S. Golubin
Member

Откуда: 140002
Сообщений: 11541
D129
Плюсы использования параметров :
1. Читабельность.
2. Иньект - безопасность.
3. ?

То есть этого мало?

3. Сервер использует заранее скомпилированный план выполнения запроса при его повторении с другими параметрами.
4. Тексты запросов можно унифицированно хранить в массиве / базе данных.

еще?
11 сен 07, 15:10    [4649887]     Ответить | Цитировать Сообщить модератору
 Re: SQL код в С#?  [new]
Мальчик с соседней улицы
Guest
D129
это больше актуально для ASP

Это почему же? А если "злодей" появится в некой компании во внутренней сети. Как правило, дырки наружу админы открывают полюбому.
11 сен 07, 15:11    [4649899]     Ответить | Цитировать Сообщить модератору
 Re: SQL код в С#?  [new]
maybeleo
Member

Откуда: изнутри кнаружи
Сообщений: 1187
Roman S. Golubin
4. Тексты запросов можно унифицированно хранить в базе данных.
И выбирать их руками построенным запросом (желательно с пользовательским вводом)
ЗЫ. Шутка.
11 сен 07, 15:12    [4649901]     Ответить | Цитировать Сообщить модератору
 Re: SQL код в С#?  [new]
winsky!
Member

Откуда: Київ
Сообщений: 5143
типизация, если так можно выразится.

т.е. у вас есть параметр типа DateTime

запрос выглядит как-то так

select something from table where dt > @dt
при использовании вашего способа
это юудет выглядеть как-то так:

string sql = "select something from table where dt > " + dtValue.ToString(?);
с проблемами столкнетесь в ToString(), потому как может быть неизвестно в каком формате вам необходимо впихнуть значение даты/времени...
а с параметрами все проще:

parameter.Value = dtValue;//и голова не болит

+ склеивание строк конкатенацией ваще моветон...есть же string.Format или StringBuilder...

ЗЫ: 2 Голубин - я вас удовлетворил? ;)
11 сен 07, 15:16    [4649947]     Ответить | Цитировать Сообщить модератору
 Re: SQL код в С#?  [new]
Мальчик с соседней улицы
Guest
maybeleo
ЗЫ. Шутка.

Да, да. Вы помечайте, что это шутка. А то тут щас обиды будут, размышления о смысле форумов и т.п.
11 сен 07, 15:16    [4649950]     Ответить | Цитировать Сообщить модератору
 Re: SQL код в С#?  [new]
winsky!
Member

Откуда: Київ
Сообщений: 5143
ого пока отвечал на "какие еще плюсы у параметров", вы тут напостили...
11 сен 07, 15:18    [4649963]     Ответить | Цитировать Сообщить модератору
 Re: SQL код в С#?  [new]
Roman S. Golubin
Member

Откуда: 140002
Сообщений: 11541
Мальчик с соседней улицы
Да, да. Вы помечайте, что это шутка. А то тут щас обиды будут, размышления о смысле форумов и т.п.

Вот не надо. Я хорошо отличаю грубость от юмора.

To winsky!:
Да, вполне. :)
11 сен 07, 15:20    [4649975]     Ответить | Цитировать Сообщить модератору
 Re: SQL код в С#?  [new]
D129
Member

Откуда:
Сообщений: 13918
maXmo
D129
в нашем проэкте можно не думать об этом... нету доступа извне...
програ-ноумен?


почти что. автоматические склады. доступ только авторизованного персонала.
в приведенном примере использовать параметры нет особого смысла - этот запрос не выполняется многократно. Но есть другие места, где это будет очень даже полезно.
спасибо.
11 сен 07, 15:20    [4649976]     Ответить | Цитировать Сообщить модератору
 Re: SQL код в С#?  [new]
Мальчик с соседней улицы
Guest
Roman S. Golubin
Вот не надо. Я хорошо отличаю грубость от юмора.

Ух, какой Вы, всё-таки
11 сен 07, 15:21    [4649983]     Ответить | Цитировать Сообщить модератору
 Re: SQL код в С#?  [new]
Алексей К
Member

Откуда: Новосибирск
Сообщений: 13633
Диез
Если параметр строковый, да еще вводимый пользователем, можно при логине получить что-нибудь типа:
Select * from Users where UserName= 'ivan'; delete from Users -- ' and PassWord = '?????'
Одна из причин, почему лучше использовать стандартную систему безопасности СУБД, вместо того, чтобы изобретать очередной велосипед...
11 сен 07, 15:32    [4650051]     Ответить | Цитировать Сообщить модератору
 Re: SQL код в С#?  [new]
chpasha
Member

Откуда:
Сообщений: 10845
Мальчик с соседней улицы
Roman S. Golubin
Вот не надо. Я хорошо отличаю грубость от юмора.

Ух, какой Вы, всё-таки

Просто Роман давно на форуме не был, соскучился, хочется всем и вся помогать. Это скоро пройдет

автор

Бывает, проснешься как птица –
Крылатой пружиной на взводе.
И хочется жить и трудиться!..
Но к завтраку это проходит...
11 сен 07, 15:33    [4650055]     Ответить | Цитировать Сообщить модератору
 Re: SQL код в С#?  [new]
chpasha
Member

Откуда:
Сообщений: 10845
кстати о пользе параметров. Предлагаю попробовать без оных blob в базу запихнуть , да не текстовый
11 сен 07, 15:34    [4650077]     Ответить | Цитировать Сообщить модератору
 Re: SQL код в С#?  [new]
Алексей К
Member

Откуда: Новосибирск
Сообщений: 13633
chpasha
кстати о пользе параметров. Предлагаю попробовать без оных blob в базу запихнуть , да не текстовый
Нивапрос
insert into MyTable(MyBlob) values(0xFFFA45)
11 сен 07, 15:38    [4650114]     Ответить | Цитировать Сообщить модератору
 Re: SQL код в С#?  [new]
Диез
Member

Откуда: Столица Попозже.
Сообщений: 894
Алексей К
Диез
Если параметр строковый, да еще вводимый пользователем, можно при логине получить что-нибудь типа:
Select * from Users where UserName= 'ivan'; delete from Users -- ' and PassWord = '?????'
Одна из причин, почему лучше использовать стандартную систему безопасности СУБД, вместо того, чтобы изобретать очередной велосипед...


А если мое WEB-приложение лежит в интернете?

А если у меня в распределенном приложении используются несколько СУБД, систему безопасности какой из них мне использовать? ;)
11 сен 07, 15:43    [4650161]     Ответить | Цитировать Сообщить модератору
 Re: SQL код в С#?  [new]
Мальчик с соседней улицы
Guest
Диез
А если мое WEB-приложение лежит в интернете?

А разница.
Диез
А если у меня в распределенном приложении используются несколько СУБД, систему безопасности какой из них мне использовать? ;)

Той, к которой в первую очередь коннектитесь.
11 сен 07, 15:48    [4650217]     Ответить | Цитировать Сообщить модератору
 Re: SQL код в С#?  [new]
Алексей К
Member

Откуда: Новосибирск
Сообщений: 13633
Диез
А если мое WEB-приложение лежит в интернете?
Если кол-во пользователей, с учётом режима disconnected, (т. е. кол-во сессий в СУБД) не "положит" сервер, то почему бы и нет?

Диез
А если у меня в распределенном приложении используются несколько СУБД, систему безопасности какой из них мне использовать? ;)
По ситуации. Как один из вариантов, цепляться к основному серверу, а к остальным ходить через linked server.
11 сен 07, 15:49    [4650232]     Ответить | Цитировать Сообщить модератору
 Re: SQL код в С#?  [new]
Алексей К
Member

Откуда: Новосибирск
Сообщений: 13633
Алексей К
Диез
А если мое WEB-приложение лежит в интернете?
Если кол-во пользователей, с учётом режима disconnected, (т. е. кол-во сессий в СУБД) не "положит" сервер, то почему бы и нет?
Опять же, высока вероятность того, что сессии под одинаковыми логинами будут использовать одно соединение из пула.
11 сен 07, 15:51    [4650251]     Ответить | Цитировать Сообщить модератору
 Re: SQL код в С#?  [new]
Мальчик с соседней улицы
Guest
Алексей К
Опять же, высока вероятность того, что сессии под одинаковыми логинами будут использовать одно соединение из пула

Вот поэтому в строке соединения нужно отключать пуллинг коннектов.
11 сен 07, 15:52    [4650272]     Ответить | Цитировать Сообщить модератору
 Re: SQL код в С#?  [new]
Алексей К
Member

Откуда: Новосибирск
Сообщений: 13633
Мальчик с соседней улицы
Алексей К
Опять же, высока вероятность того, что сессии под одинаковыми логинами будут использовать одно соединение из пула

Вот поэтому в строке соединения нужно отключать пуллинг коннектов.
Зачем???? Наоборот хорошо.
11 сен 07, 15:54    [4650287]     Ответить | Цитировать Сообщить модератору
 Re: SQL код в С#?  [new]
Мальчик с соседней улицы
Guest
Алексей К
Зачем???? Наоборот хорошо.

Нет. В печь.
P.S. Даже руководствуясь тем, что организация коннекта сервера с клиентом - весьма дорогостоящая операция.
11 сен 07, 15:56    [4650299]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4 5   вперед  Ctrl      все
Все форумы / WinForms, .Net Framework Ответить