Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Хранимая процедура не стартует  [new]
Hanuman
Member

Откуда:
Сообщений: 29
Коллеги, я уже всю голову сломал....
собственно хранимая процедура:
ALTER PROCEDURE [dbo].[AddPlains]

@plain_Date DATE,
@toj_ID int,
@stat_ID int,
@area_ID int,
@tl_ID int,
@nl_ID int,
@plain_time_begin TIME(0),
@plain_time_end TIME(0),
@plain_time_spend int,
@plain_dt_begin int,
@plain_dt_end int,
@plain_dt_norm int,
@plain_dt_fact int,
@plain_economy int,
@driver_ID int,
@plain_dt_equipment int,
@plain_smena int,
@bort bit,
@plain_hp bit,
@tojn_ID int
AS
INSERT INTO dbo.Plains(PlainsDate,statID,areaID,tlID,nlID,PlainsTimeSpend,
PlainsDtBegin,PlainsDtEnd,PlainsDtEquipment,PlainsDtNorm,PlainsDtFact,PlainsEconomy,driverID,
PlainsSmena,bort,PlainsHp,tojnID,PlainsTimeBegin,PlainsTimeEnd)
--Переменные которые необходимо вставить в таблицу--
VALUES
(@plain_Date,@stat_ID,@area_ID,@tl_ID,@nl_ID,@plain_time_spend,@plain_dt_begin,
@plain_dt_end,@plain_dt_equipment,@plain_dt_norm,@plain_dt_fact,@plain_economy,@driver_ID,@plain_smena,@bort,@plain_hp,@tojn_ID,@plain_time_begin,@plain_time_end)


Сделал запрос для проверки этой процедуры:
DECLARE 
@plain_Date DATE,
@toj_ID int,
@stat_ID int,
@area_ID int,
@tl_ID int,
@nl_ID int,
@plain_time_begin TIME(0),
@plain_time_end TIME(0),
@plain_time_spend int,
@plain_dt_begin int,
@plain_dt_end int,
@plain_dt_norm int,
@plain_dt_fact int,
@plain_economy int,
@driver_ID int,
@plain_dt_equipment int,
@plain_smena int,
@bort bit,
@plain_hp bit,
@tojn_ID int

Set @plain_Date=CONVERT(date, '20110101', 21)
Set @stat_ID =1
Set @area_ID =1
Set @tl_ID =1
Set @nl_ID =1
Set @plain_time_begin ='20:38'
Set @plain_time_end ='1:45'
Set @plain_time_spend =58
Set @plain_dt_begin =4000
Set @plain_dt_end =3960
Set @plain_dt_norm =10
Set @plain_dt_fact = 20
Set @plain_economy = 10
Set @plain_dt_equipment=3000
Set @driver_ID =1
Set @plain_smena =1
Set @bort=0
Set @plain_hp=0
Set @tojn_ID=2

EXEC dbo.AddPlains @plain_Date,@stat_ID,@area_ID,@tl_ID,@nl_ID,@plain_time_begin,@plain_time_end,@plain_time_spend,
@plain_dt_equipment,@plain_dt_norm,@plain_dt_fact,@plain_economy,@driver_ID,@plain_smena,@bort,@plain_hp,@tojn_ID,@plain_time_begin,@plain_time_end

SELECT * FROM Plains


И тут ошибка:

сообщение: 206, уровень: 16, состояние: 2, процедура: AddPlains, строка: 0 [строка начала пакета: 0]
Конфликт типов операндов: time несовместим с int


Если сделать запрос без хранимой процедуры:
DECLARE 
@plain_Date DATE,
@toj_ID int,
@stat_ID int,
@area_ID int,
@tl_ID int,
@nl_ID int,
@plain_time_begin TIME(0),
@plain_time_end TIME(0),
@plain_time_spend int,
@plain_dt_begin int,
@plain_dt_end int,
@plain_dt_norm int,
@plain_dt_fact int,
@plain_economy int,
@driver_ID int,
@plain_dt_equipment int,
@plain_smena int,
@bort bit,
@plain_hp bit,
@tojn_ID int

Set @plain_Date=CONVERT(date, '20110101', 21)
Set @stat_ID =1
Set @area_ID =1
Set @tl_ID =1
Set @nl_ID =1
Set @plain_time_begin ='20:38'
Set @plain_time_end ='1:45'
Set @plain_time_spend =58
Set @plain_dt_begin =4000
Set @plain_dt_end =3960
Set @plain_dt_norm =10
Set @plain_dt_fact = 20
Set @plain_economy = 10
Set @plain_dt_equipment=3000
Set @driver_ID =1
Set @plain_smena =1
Set @bort=0
Set @plain_hp=0
Set @tojn_ID=2

INSERT INTO dbo.Plains(PlainsDate,statID,areaID,tlID,nlID,PlainsTimeSpend,
PlainsDtBegin,PlainsDtEnd,PlainsDtEquipment,PlainsDtNorm,PlainsDtFact,PlainsEconomy,driverID,
PlainsSmena,bort,PlainsHp,tojnID,PlainsTimeBegin,PlainsTimeEnd)
--Переменные которые необходимо вставить в таблицу--
VALUES
(@plain_Date,@stat_ID,@area_ID,@tl_ID,@nl_ID,@plain_time_spend,@plain_dt_begin,
@plain_dt_end,@plain_dt_equipment,@plain_dt_norm,@plain_dt_fact,@plain_economy,@driver_ID,@plain_smena,@bort,@plain_hp,@tojn_ID,@plain_time_begin,@plain_time_end)
SELECT * FROM Plains

Все работает

Почему при вызове этой процедуры, вылазит ошибка? :(
22 май 19, 11:08    [21890438]     Ответить | Цитировать Сообщить модератору
 Re: Хранимая процедура не стартует  [new]
Посетитель
Member

Откуда:
Сообщений: 1384
Hanuman
Коллеги, я уже всю голову сломал....
собственно хранимая процедура:
ALTER PROCEDURE [dbo].[AddPlains]

@plain_Date DATE,
@toj_ID int,
@stat_ID int,
@area_ID int,
@tl_ID int,
@nl_ID int,
@plain_time_begin TIME(0),
@plain_time_end TIME(0),
@plain_time_spend int,
@plain_dt_begin int,
@plain_dt_end int,
@plain_dt_norm int,
@plain_dt_fact int,
@plain_economy int,
@driver_ID int,
@plain_dt_equipment int,
@plain_smena int,
@bort bit,
@plain_hp bit,
@tojn_ID int
AS
INSERT INTO dbo.Plains(PlainsDate,statID,areaID,tlID,nlID,PlainsTimeSpend,
PlainsDtBegin,PlainsDtEnd,PlainsDtEquipment,PlainsDtNorm,PlainsDtFact,PlainsEconomy,driverID,
PlainsSmena,bort,PlainsHp,tojnID,PlainsTimeBegin,PlainsTimeEnd)
--Переменные которые необходимо вставить в таблицу--
VALUES
(@plain_Date,@stat_ID,@area_ID,@tl_ID,@nl_ID,@plain_time_spend,@plain_dt_begin,
@plain_dt_end,@plain_dt_equipment,@plain_dt_norm,@plain_dt_fact,@plain_economy,@driver_ID,@plain_smena,@bort,@plain_hp,@tojn_ID,@plain_time_begin,@plain_time_end)



Сделал запрос для проверки этой процедуры:
DECLARE 
@plain_Date DATE,
@toj_ID int,
@stat_ID int,
@area_ID int,
@tl_ID int,
@nl_ID int,
@plain_time_begin TIME(0),
@plain_time_end TIME(0),
@plain_time_spend int,
@plain_dt_begin int,
@plain_dt_end int,
@plain_dt_norm int,
@plain_dt_fact int,
@plain_economy int,
@driver_ID int,
@plain_dt_equipment int,
@plain_smena int,
@bort bit,
@plain_hp bit,
@tojn_ID int

Set @plain_Date=CONVERT(date, '20110101', 21)
Set @stat_ID =1
Set @area_ID =1
Set @tl_ID =1
Set @nl_ID =1
Set @plain_time_begin ='20:38'
Set @plain_time_end ='1:45'
Set @plain_time_spend =58
Set @plain_dt_begin =4000
Set @plain_dt_end =3960
Set @plain_dt_norm =10
Set @plain_dt_fact = 20
Set @plain_economy = 10
Set @plain_dt_equipment=3000
Set @driver_ID =1
Set @plain_smena =1
Set @bort=0
Set @plain_hp=0
Set @tojn_ID=2

EXEC dbo.AddPlains @plain_Date,@stat_ID,@area_ID,@tl_ID,@nl_ID,@plain_time_begin,@plain_time_end,@plain_time_spend,
@plain_dt_equipment,@plain_dt_norm,@plain_dt_fact,@plain_economy,@driver_ID,@plain_smena,@bort,@plain_hp,@tojn_ID,@plain_time_begin,@plain_time_end

SELECT * FROM Plains



И тут ошибка:

сообщение: 206, уровень: 16, состояние: 2, процедура: AddPlains, строка: 0 [строка начала пакета: 0]
Конфликт типов операндов: time несовместим с int


Если сделать запрос без хранимой процедуры:
DECLARE 
@plain_Date DATE,
@toj_ID int,
@stat_ID int,
@area_ID int,
@tl_ID int,
@nl_ID int,
@plain_time_begin TIME(0),
@plain_time_end TIME(0),
@plain_time_spend int,
@plain_dt_begin int,
@plain_dt_end int,
@plain_dt_norm int,
@plain_dt_fact int,
@plain_economy int,
@driver_ID int,
@plain_dt_equipment int,
@plain_smena int,
@bort bit,
@plain_hp bit,
@tojn_ID int

Set @plain_Date=CONVERT(date, '20110101', 21)
Set @stat_ID =1
Set @area_ID =1
Set @tl_ID =1
Set @nl_ID =1
Set @plain_time_begin ='20:38'
Set @plain_time_end ='1:45'
Set @plain_time_spend =58
Set @plain_dt_begin =4000
Set @plain_dt_end =3960
Set @plain_dt_norm =10
Set @plain_dt_fact = 20
Set @plain_economy = 10
Set @plain_dt_equipment=3000
Set @driver_ID =1
Set @plain_smena =1
Set @bort=0
Set @plain_hp=0
Set @tojn_ID=2

INSERT INTO dbo.Plains(PlainsDate,statID,areaID,tlID,nlID,PlainsTimeSpend,
PlainsDtBegin,PlainsDtEnd,PlainsDtEquipment,PlainsDtNorm,PlainsDtFact,PlainsEconomy,driverID,
PlainsSmena,bort,PlainsHp,tojnID,PlainsTimeBegin,PlainsTimeEnd)
--Переменные которые необходимо вставить в таблицу--
VALUES
(@plain_Date,@stat_ID,@area_ID,@tl_ID,@nl_ID,@plain_time_spend,@plain_dt_begin,
@plain_dt_end,@plain_dt_equipment,@plain_dt_norm,@plain_dt_fact,@plain_economy,@driver_ID,@plain_smena,@bort,@plain_hp,@tojn_ID,@plain_time_begin,@plain_time_end)
SELECT * FROM Plains


Все работает

Почему при вызове этой процедуры, вылазит ошибка? :(


потому что надо быть внимательнее. или пользоваться исключительно формой @param_name = @param_val при вызове.
toj_ID потеряли.
вызывайте
22 май 19, 11:11    [21890440]     Ответить | Цитировать Сообщить модератору
 Re: Хранимая процедура не стартует  [new]
Hanuman
Member

Откуда:
Сообщений: 29
Посетитель,
toj_ID - это вообще лишний параметр :) убрал его, ошибка не исчезла.
22 май 19, 11:19    [21890445]     Ответить | Цитировать Сообщить модератору
 Re: Хранимая процедура не стартует  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Hanuman
Посетитель,
toj_ID - это вообще лишний параметр :) убрал его, ошибка не исчезла.


дичь какая-то
с какого перепугу последние 2 поля @plain_time_begin,@plain_time_end
EXEC dbo.AddPlains @plain_Date,@stat_ID,@area_ID,@tl_ID,@nl_ID,@plain_time_begin,@plain_time_end,@plain_time_spend,
@plain_dt_equipment,@plain_dt_norm,@plain_dt_fact,@plain_economy,@driver_ID,@plain_smena,@bort,@plain_hp,@tojn_ID,@plain_time_begin,@plain_time_end


пишите как говорят @param_name = @param_val
22 май 19, 11:25    [21890452]     Ответить | Цитировать Сообщить модератору
 Re: Хранимая процедура не стартует  [new]
Hanuman
Member

Откуда:
Сообщений: 29
TaPaK,
Разобрался :) отсортировал все поля, и все заработало :)
22 май 19, 11:30    [21890460]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить