powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Результат зашифрованной хранимой процедуры во временную таблицу.
5 сообщений из 5, страница 1 из 1
Результат зашифрованной хранимой процедуры во временную таблицу.
    #40008057
max9966
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запускаю в среде SQL Server Management Studio зашифрованную хранимую процедуру и получаю 2 таблицы как результат.
Нужно вторую таблицу получить во временную таблицу.
Подскажите пожалуйста, кто знает:
Как узнать структуру выдаваемых процедурой таблиц, чтобы правильно создать и определить временную таблицу?
Как получить во временную таблицу, именно второй, выдаваемый процедурой результат?
...
Рейтинг: 0 / 0
Результат зашифрованной хранимой процедуры во временную таблицу.
    #40008066
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никак.
От слова совсем.
...
Рейтинг: 0 / 0
Результат зашифрованной хранимой процедуры во временную таблицу.
    #40008075
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делать это не в SSMS.
Например, в C# - открыть SqlDataReader на основе SqlCommand, которая вызывает эту процедуру, пропустить первый резалтсет (SqlDataReader.NextResult), у второго получить schema table (SqlDataReader.GetSchemaTable) - это и будет структура выдаваемой таблицы. Потом SqlDataReader залить в DataTable, последнюю посредством SqlBulkCopy залить на сервер.
...
Рейтинг: 0 / 0
Результат зашифрованной хранимой процедуры во временную таблицу.
    #40008101
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
create proc dbo.temp
as
select 1 as rs1;
select 2 as rs2;


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
declare @sConnectionString varchar(150) = 'Provider=SQLOLEDB;Server=(local);Database=test;Integrated Security=SSPI;'
declare
		@cn int,
		@rs int,
		@hResult int,
		@sErrorSource varchar(255),
		@sErrorDesc varchar(255),
		@sSQL varchar(255),
		@xmlDoc int,
		@rsState int

declare @t table (id int identity, xml_data xml)

--	**********************************
exec @hResult = sp_OACreate 'ADODB.Connection', @cn out;
exec @hResult = sp_OAMethod @cn, 'Open', null, @sConnectionString;

exec @hResult = sp_OACreate 'MSXML2.DOMDocument', @xmlDoc out;

set @sSQL = 'exec dbo.temp';
exec @hResult = sp_OAMethod @cn, 'Execute', @rs out, @sSQL;

while 1 = 1 begin
	exec @hResult = sp_OAMethod @rs, 'Save', null, @xmlDoc, 1;

	insert into @t (xml_data)
	exec @hResult = sp_OAMethod @xmlDoc, 'xml';

	exec @hResult = sp_OAMethod @rs, 'NextRecordset', @rs out;
	
	exec @hResult = sp_OAGetProperty @rs, 'State', @rsState out; 
	if @rsState = 0 break;
end

exec @hResult = sp_OADestroy @xmlDoc;
exec @hResult = sp_OADestroy @rs;
exec @hResult = sp_OADestroy @cn;

select * from @t;


idxml_data1<xml xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema"><s:Schema id="RowsetSchema"><s:ElementType name="row" content="eltOnly" rs:CommandTimeout="30"> <s:AttributeType name="rs1" rs:number="1"><s:datatype dt:type="int" dt:maxLength="4" rs:precision="10" rs:fixedlength="true" rs:maybenull="false" /></s:AttributeType> <s:extends type="rs:rowbase" /></s:ElementType></s:Schema> <rs:data><z:row rs1="1" /></rs:data> </xml>2<xml xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema"><s:Schema id="RowsetSchema"><s:ElementType name="row" content="eltOnly" rs:CommandTimeout="30"> <s:AttributeType name="rs2" rs:number="1"><s:datatype dt:type="int" dt:maxLength="4" rs:precision="10" rs:fixedlength="true" rs:maybenull="false" /></s:AttributeType> <s:extends type="rs:rowbase" /></s:ElementType></s:Schema> <rs:data><z:row rs2="2" /></rs:data> </xml>
...
Рейтинг: 0 / 0
Результат зашифрованной хранимой процедуры во временную таблицу.
    #40008144
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поставьте задачу авторам процедуры на получение набора данных. Они скорее всего введут параметр, при установке которого будет выдаваться нужный набор.

Если создатели недоступны, то расшифруйте процедуру и сделайте все сами.

Все советы выше из серии "создаем себе трудности"
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Результат зашифрованной хранимой процедуры во временную таблицу.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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