powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQ2SQL, unknown return type
6 сообщений из 6, страница 1 из 1
LINQ2SQL, unknown return type
    #37430679
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть хп, но разработчики клиентской части не могут сгенерить для нее класс, получая ошибку:
unknown return type the return types for the following stored procedure could not be detected
методом научного тыка найдена проблемная строка в хп
Код: plaintext
SET @paramNames = LEFT(@paramNames, LEN(@paramNames) -  1 )

ошибка исчезает после переделки в что-нибудь с проверкой
Код: plaintext
1.
2.
	SET @len = LEN(@paramNames)
	SET @len = CASE WHEN @len >  0  THEN @len -  1  ELSE  0  END
	SET @paramNames = LEFT(@paramNames, @len)
могу предположить, что линк пытается каким-то образом проверить логическую корректность sql кода.

если вывод верной, то вопросы: почему линк настолько волнует содержимое хранимой процедуры и возможно ли это отключить? какой вообще в этом смысл, если в хранимках может использоваться динамика?


vs 2010, ms sql 2008 ent
...
Рейтинг: 0 / 0
LINQ2SQL, unknown return type
    #37431707
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Текст хп в студию. Скрипты создания таблиц (если имеются) тоже.

P.S. SET NOCOUNT ON в наличии?
...
Рейтинг: 0 / 0
LINQ2SQL, unknown return type
    #37432487
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ, вот репро. в комменте вариант обрезания запятой, на который VS не ругается

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
CREATE PROCEDURE [dbo].[hp_Test] 
AS
BEGIN
	SET NOCOUNT ON;
	
	DECLARE @paramNames nvarchar( 4000 ) = N''
	
	SELECT @paramNames = @paramNames + N'param' + CAST(n.number AS nvarchar( 4000 )) + N','
	FROM (
		SELECT DISTINCT sp.number 
		FROM master.dbo.spt_values sp 
		WHERE sp.number BETWEEN  0  AND  10 
	) n	

	SET @paramNames = LEFT(@paramNames, LEN(@paramNames) -  1 )
	
	/*
        DECLARE @len int = LEN(@paramNames)
	SET @len = CASE WHEN @len >= 1 THEN @len - 1 ELSE 0 END
	SET @paramNames = LEFT(@paramNames, @len)
	*/
		
	SELECT @paramNames AS paramNames
END
...
Рейтинг: 0 / 0
LINQ2SQL, unknown return type
    #37433106
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shakill, вот ответ на ваш вопрос
Код: plaintext
1.
2.
set fmtonly on
exec hp_Test
set fmtonly off
...
Рейтинг: 0 / 0
LINQ2SQL, unknown return type
    #37433210
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buser, вот оно что. спасибо большое

остаётся интерес, почему текст ошибки в vs такой неочевидный
...
Рейтинг: 0 / 0
LINQ2SQL, unknown return type
    #37433257
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю индусы и try/catch
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / LINQ2SQL, unknown return type
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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