Генератор кода на основе SQL DMO - PullRequest
1 голос
/ 07 марта 2011

У меня уже есть генератор кода на основе SQL DMO, который записывает функцию C # для любой хранимой процедуры в базе данных SQL Server 2008. Однако в настоящее время генератор кода может обрабатывать только хранимые процедуры, которые имеют входные и выходные параметры. Для хранимых процедур, которые возвращают несколько записей, генератор кода возвращает таблицу данных со строками, каждая из которых представляет выходную запись.

Есть ли способ использовать SQL DMO для определения полей, которые будут возвращены хранимой процедурой, если вывод хранимой процедуры равен select * from Member where MemberID=1?

Спасибо

1 Ответ

1 голос
/ 09 марта 2011

Я предполагаю, что вы не можете сделать это в DMO, поскольку DMO полагается на метаинформацию, хранящуюся в SQL Server, и описание SP набора результатов не сохраняется таким образом (насколько я знаю).

Однако вы можете сделать так, чтобы ваш генератор выполнил хранимую процедуру внутри транзакции и проанализировал результирующий SqlDataReader .Взгляните на методы GetName (), GetFieldType () и GetSchemaTable () для создания класса результата.

После выполнения,откат транзакции (если SP вносит какие-либо изменения в базу данных).

Вы также можете рассмотреть возможность обновления вашего генератора до SMO, поскольку MSDN заявляет , что DMO не будет поддерживаться в будущем.

...