The request for procedure 'x' failed because 'x' is a table valued function object. при выполнении процедуры
При выполнении процедуры в Node.js:
The request for procedure 'x' failed because 'x' is a table valued function object.
Для работы с MSSQL использую mssql.
Функция с табличным значением принимает id и возвращает таблицу. Выполняю вот так:
export const dboUdfConfigCompliance = async (id: string) => {
try {
const pool = await connectDB();
return await pool
?.request()
.input('SrvId', sql.Int, id)
.execute('[dbo].[udfConfigCompliance]');
} catch (err: any | unknown) {
throw new HandlerErr(`Ошибка выполнения процедуры [dbo].[udfConfigCompliance] ${err.message}`);
}
};
Предистория - старый фронт был на C# и запросы к бд были напрямую с фронта. Я переношу логику работы с БД на node.js
Ответы (1 шт):
Автор решения: Александр
→ Ссылка
Нужно выполнять процедуру через .query, а не .execute.
`export const dboUdfConfigCompliance = async (id: string) => {
try {
const pool = await connectDB();
return await pool
?.request()
.input('SrvId', sql.Int, id)
.query('SELECT ....);
} catch (err: any | unknown) {
throw new HandlerErr(`Ошибка выполнения процедуры [dbo].[udfConfigCompliance] ${err.message}`);
}
};
};`