Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Что реально делает SqlCommand.Prepare()? / 16 сообщений из 16, страница 1 из 1
18.02.2005, 16:49
    #32923842
Fedishen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что реально делает SqlCommand.Prepare()?
Что реально делает SqlCommand.Prepare()? Если
CommandType = CommandType.StoredProcedure
Каким образом метод сравнивает параметры SqlCommand c параметрами ХП перед тем как передать их в ХП и выполнить ее?
...
Рейтинг: 0 / 0
19.02.2005, 00:58
    #32924447
Alexey Sh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что реально делает SqlCommand.Prepare()?
Посмотри отличия в профайлере
...
Рейтинг: 0 / 0
19.02.2005, 19:46
    #32924820
Fedishen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что реально делает SqlCommand.Prepare()?
смотрел, ниче ни делает
...
Рейтинг: 0 / 0
20.02.2005, 20:37
    #32925155
Alexey Sh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что реально делает SqlCommand.Prepare()?
FedishenЧто реально делает SqlCommand.Prepare()? Если
CommandType = CommandType.StoredProcedure
Каким образом метод сравнивает параметры SqlCommand c параметрами ХП перед тем как передать их в ХП и выполнить ее?

А зачем их сравнивать? Параметры передаются в соответствии с описанием в Parameters.Add . Если преобразование к типам в описании процедуры невозможно- будет ошибка
...
Рейтинг: 0 / 0
20.02.2005, 22:20
    #32925175
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что реально делает SqlCommand.Prepare()?
Prepare не связан с параметрами.

Exams 070-316 Developing Windows-based Applications with Visual C# .Net
The SqlCommand.Prepare Method creates a prepared version of the command on an instance of SQL Server. It prepares a compiled version of the command on the data source. We only need to compile the stored procedure once. Compiling the procedure would improve performance since it will run many times.


ИМХО при использовании ADO.NET и MS SQL Server о Prepare вообще можно забыть.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
20.02.2005, 23:34
    #32925189
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что реально делает SqlCommand.Prepare()?
Уточню, речь идет об SqlCommand и MS SQL Server = MS SQL Server 2k

Так как на других СУБД можно поймать исключение и на Prepare непосредственно до выполнения команды.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
21.02.2005, 00:28
    #32925199
Alexey Sh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что реально делает SqlCommand.Prepare()?
Мануал гласит:
Remarks
If CommandType is set to StoredProcedure, the call to Prepare should succeed, although it may result in a no-op.


Если CommandType = CommandType.Text, о prepare работает так же как и в OLEDB(речь идёт о mssql 2000). При первом выполнении команды выдаётся sp_prepexec , при последующих sp_execute.
Без prepare выдаётся sp_executesql
...
Рейтинг: 0 / 0
21.02.2005, 00:53
    #32925206
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что реально делает SqlCommand.Prepare()?
:-)
На то он и Text

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
21.02.2005, 01:05
    #32925211
Alexey Sh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что реально делает SqlCommand.Prepare()?
в OLEDB prepared вызов ХП выдаёт sp_prepexecrpc c последующими sp_execute
Экономия - на передаче имени процедуры и поиске процедуры по имени
...
Рейтинг: 0 / 0
21.02.2005, 01:20
    #32925214
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что реально делает SqlCommand.Prepare()?
в OLEDB prepared вызов ХП выдаёт sp_prepexecrpc c последующими sp_execute
Экономия - на передаче имени процедуры и поиске процедуры по имени

не призыв ли это: держать connect всегда открытым и не использовать pooling? :-)

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
21.02.2005, 11:41
    #32925696
Fedishen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что реально делает SqlCommand.Prepare()?
MSDN
The SqlCommand.Prepare Method creates a prepared version of the command on an instance of SQL Server.

А как это понимать? Если посмотреть в Profiler'е то кроме строчки exec "Имя процедуры" ничего и не происходит
...
Рейтинг: 0 / 0
21.02.2005, 12:04
    #32925776
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что реально делает SqlCommand.Prepare()?
А как это понимать? Если посмотреть в Profiler'е то кроме строчки exec "Имя процедуры" ничего и не происходит

Сделайте CommandType.Text и посмотрите, а ответ про CommandType.StoredProcedure уже прозвучал, повторю:
MSDN
If CommandType is set to StoredProcedure, the call to Prepare should succeed, although it may result in a no-op.


Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
21.02.2005, 12:24
    #32925841
Alexey Sh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что реально делает SqlCommand.Prepare()?
Sa
в OLEDB prepared вызов ХП выдаёт sp_prepexecrpc c последующими sp_execute
Экономия - на передаче имени процедуры и поиске процедуры по имени

не призыв ли это: держать connect всегда открытым и не использовать pooling? :-)

Код: plaintext
 uid  =  S a

Нет, не призыв :) Исключительно для использования prepared по назначению
...
Рейтинг: 0 / 0
21.02.2005, 12:39
    #32925887
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что реально делает SqlCommand.Prepare()?
Кстати еще до кучи:
KB
SQL Server 2000 .... does not run Prepare until the first command is executed . This optimization prevents the overhead of Prepare if no commands are subsequently executed .



Исключительно для использования prepared по назначению

Согласен, правда в моих программах очень редко достается Command'у такое предназначение. :-)

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
21.02.2005, 12:44
    #32925912
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что реально делает SqlCommand.Prepare()?
OFF:
Поздравляю Fedishen :-)
Я пробил в google: "SqlCommand.Prepare" - твоя тема на втором почетном месте после MSDN.

http://www.google.com/search?hl=en&lr=&q=sqlcommand.prepare&btnG=Search


Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
22.02.2005, 18:52
    #32929218
Fedishen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что реально делает SqlCommand.Prepare()?
Кул
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Что реально делает SqlCommand.Prepare()? / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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