Значит ли это, что VS2019 не поддерживает создание проектов PCL сейчас? Есть предложения по исправлению?
blockquote>Согласно документу Справочник по миграции и обновлению проекта для Visual Studio 2019 Preview :
Итак, Visual Studio 2019 по-прежнему поддерживает создание проектов PCL.
Причиной этой проблемы является то, что на размещенной Windows 2019 с агентом VS2019 по умолчанию не устанавливается компонент
.NET Portable Library targeting pack
:Более подробную информацию можно найти в Visual Studio 2019 Enterprise .
Чтобы решить эту проблему, вы можете создать свой частный агент и установить этот компонент.
Надеюсь, это поможет.
Вы бы объявили табличную переменную для хранения результатов хранимой процедуры, а затем перебрали бы их в цикле while:
declare @temp table (
idx int identity(1,1),
field1 int,
field2 varchar(max))
declare @result int
insert into @temp (field1, field2)
exec @result = sp_who
declare @counter int
set @counter = 1
while @counter < (select max(idx) from @temp)
begin
-- do what you want with the rows here
set @counter = @counter + 1
end
вы можете уловить результаты сохраненной процедуры, вставив в таблицу с совпадающими столбцами ...
create table #spWhoResults
(spid smallint,
ecid smallint,
status nchar(60),
loginame nchar(256),
hostname nchar(256),
blk char(5),
dbname nvarchar(128),
cmd nchar(32),
request_id int)
go
insert #spWhoResults
exec sp_who
select *
from #spWhoResults
/*
put your cursor here to loop #spWhoResults to
perform whatever it is you wanted to do per row
*/
То, что указал Джастин, это то, что вам нужно сделать, но вместо того, чтобы делать
while @counter < (select max(idx) from @temp)
, сделайте это
declare @maxid int
select @maxid = max(idx), @counter = 1
from @temp
while @counter < @maxid begin
-- go on
set @counter = @counter + 1
end
Кроме того, если объявление таблицы как @temp не работает, вы можете объявить это как #temp.