2016-01-01 1 views
2

Я использую ADO/Visual C++ для доступа к движку базы данных SQL Server. Я считаю, как соединение и командный объект имеет метод Execute, как показано ниже:В чем разница между Connection.Execute и Command.Execute в ADO?

https://msdn.microsoft.com/en-us/library/ms675023%28v=vs.85%29.aspx (ADO Connection) https://msdn.microsoft.com/en-us/library/ms681559%28v=vs.85%29.aspx (ADO Command)

И выполняет запрос SQL и возвращает набор записей.

В этом случае в чем разница между ними и почему MS предоставит две функции с одинаковыми функциональными возможностями?

ответ

2

Я считаю, что это касается гибкости и скорости создания объекта (меньше строк кода для ввода). Если вам нужно отправить запрос на SQL с меньшими накладными расходами, используйте Connection. Если вы хотите создать параметры командной строки и рычагов (настоятельно рекомендуется) или другие функции команды, тогда отлично - используйте это. Там больше накладных расходов, но предлагаемые функции лучше.

Просто используйте команду - это намного лучше.

+1

Я думаю, что важно указать, что накладные расходы являются незначительными и, учитывая опасность внедрения sql, в большинстве случаев неплохо использовать команду с параметрами. Если вы выполняете sql без каких-либо параметров, и этот sql поступает из надежного источника, то использование connection.execute приводит к меньшему количеству строк кода. Меньше кода - это хорошо, поэтому в этом случае, вероятно, лучший выбор. – Aheho

+0

Yup. Скорость - это почти бесконечная скорость разработки. –

Смежные вопросы