У меня есть хранимая процедура, похожая на эту:
CREATE PROCEDURE [dbo].[StoreTemp]
(@Temperature float,
@Seconds int,
@SessionId int,)
AS
BEGIN
DECLARE @Unit varchar(20);
SELECT @Unit = RecordingUnit FROM ReadLastUnit;
INSERT INTO DATASET (Temperature_C, Temperature_F, Seconds, SessionId, [Time])
SELECT
CASE WHEN @Unit = 'Celsius' THEN @Temperature ELSE NULL END,
CASE WHEN @Unit != 'Celsius' THEN @Temperature ELSE NULL END,
@Seconds, @SessionId, GETDATE();
END
В labview я подготавливаю строку с параметрами, такими как
execute StoreTemp %2.1f, %d, %d
, которая принимает 3 параметра, которые вводятся через «Формат» в строку "коробка.
Выдается следующая ошибка:
Произошла ошибка -2147217900 при возникновении исключительной ситуации в поставщике OLE DB Microsoft для ODB C Драйверы:
[Microsoft] [ODB C SQL Драйвер сервера] [SQL Сервер] Процедура или функция StoreTemp имеет слишком много аргументов. в ADODBCommand
Вышеупомянутая SQL серверная хранимая процедура должна в основном получать одно значение измерения @Temperature
из LabView и в зависимости от настроек записи (- которая читается как @Unit из ReadLastUnit View) либо сохраните температуру в одной единице, и заполните другую колонку единиц нулем, и наоборот. Каким-то образом кажется, что он получает больше параметров, хотя указано 3 входа и 3 параметра передаются через LabView. Что означает эта ошибка?