|
v7: Ругается "Недопустимое значение индекса параметра" | ☑ | ||
---|---|---|---|---|
0
zenon46
28.09.21
✎
16:27
|
Доброго дня!
Почему ругается при выполнении скалярного : сам запрос |@Товар = ? |SELECT | Рег.КоличествоОстаток AS Резервы |FROM | $РегистрОстатки.РезервыТМЦ(:ВыбДата~,,Фирма = :ВбрФирма AND Номенклатура = @Товар,(Номенклатура),(Количество)) AS Рег |"; RS_1.УстановитьТекстовыйПараметр("ВбрФирма",глКонстанта("ФирмаОсновногоСклада")); RS_1.УстановитьТекстовыйПараметр("ДатаТА",ПолучитьДатуТА()); RS_1.Подготовить(ТекстЗапроса); RS_1.ПостроитьПараметры(); Далее в функции вызываю : Товар - ссылка на элемент справочника "Номенклатура" RS_1.УстПараметр(1,Товар); КолРез = RS_1.ВыполнитьСкалярный(); |
|||
1
ДенисЧ
28.09.21
✎
16:36
|
||||
2
zenon46
28.09.21
✎
16:43
|
(1) так тоже не стартует
|SET NoCount ON |DECLARE @Товар Char(9) |Set @Товар = ? |SELECT | Рег.КоличествоОстаток AS Резервы |FROM | $РегистрОстатки.РезервыТМЦ(:ВыбДата~,,Фирма = :ВбрФирма AND Номенклатура = @Товар,(Номенклатура),(Количество)) AS Рег |"; RS_1.Подготовить(ТекстЗапроса); RS_1.ПостроитьПараметры(); RS_1.УстановитьТекстовыйПараметр("ВбрФирма",глКонстанта("ФирмаОсновногоСклада")); RS_1.УстановитьТекстовыйПараметр("ВыбДата",ПолучитьДатуТА()); |
|||
3
Chai Nic
28.09.21
✎
16:46
|
Не выеживайся и делай через текстовый параметр.
|
|||
4
zenon46
28.09.21
✎
16:46
|
Раньше был такой, он работал, а вот с ВТ что-то не получается запустить
|SELECT | SUM($Рег.Количество) as Количество |FROM | $РегистрИтоги.РезервыТМЦ as Рег |WHERE | Рег.PERIOD = cast($НачалоПериода.Месяц(:ДатаТА,Строка) as datetime) AND | $Рег.Номенклатура = ? AND | $Рег.Фирма = :ВбрФирма |"; |
|||
5
trad
28.09.21
✎
18:02
|
вместо ПостроитьПараметры() попробуй явно ДобПараметр(1, 14, 9, 0)
|
|||
6
zenon46
28.09.21
✎
18:10
|
(5) как понимать эту запись ? "ДобПараметр(1, 14, 9, 0)"
|
|||
7
Mikeware
28.09.21
✎
18:21
|
(6) ДобПараметр / AddParam
Синтаксис: ДобПараметр(IOType, DBType, Len, Prec) Параметры: IOType - тип: Число. Направления параметра: 1 - DBPARAMIO_INPUT; 2 - DBPARAMIO_OUTPUT; 3 - DBPARAMIO_INPUT | DBPARAMIO_OUTPUT. DBType - тип: Число. DBTYPE-тип параметра. Len - тип: Число. Длина параметра. Prec - тип: Число. Точность параметра. Описание: добавляет описание параметра для параметризированного запроса. |
|||
8
trad
28.09.21
✎
18:33
|
миста - внештатная справка
|
|||
9
Ёпрст
28.09.21
✎
18:51
|
нахрена только ТС параметизированный запрос - загадка..
Или он это чудо в цикле выполнять собрался ? ))) |
|||
10
zenon46
28.09.21
✎
18:53
|
(9) да отображение резерва в ТЧ документа
|
|||
11
Ёпрст
28.09.21
✎
19:00
|
(10) получай для всех строк тч один раз останки и потом ищи их в итз
|
|||
12
Ёпрст
28.09.21
✎
19:01
|
+ или по кнопке или по таймеру обновление итз
|
|||
13
zenon46
28.09.21
✎
19:17
|
Запрос запустился, вот только на выходе 0, что не правильно ?
|Set NOCOUNT ON |Declare @Товар VarChar(9) |Set @Товар = ? |SELECT | Рег.КоличествоОстаток AS Резервы |FROM | $РегистрОстатки.РезервыТМЦ(:ВыбДата~,,Фирма = :ВбрФирма AND Номенклатура = @Товар,(Номенклатура),(Количество)) AS Рег |"; RS_1.УстановитьТекстовыйПараметр("ВыбДата",ПолучитьДатуТА()); RS_1.УстановитьТекстовыйПараметр("ВбрФирма",глКонстанта("ФирмаОсновногоСклада")); RS_1.ДобПараметр(1,10,17,0); RS_1.ДобПараметр(1,14,9,0); RS_1.ДобПараметр(1,14,9,0); RS_1.Подготовить(ТекстЗапроса); RS_1.УстПараметр(1,ПолучитьДатуТА()); RS_1.УстПараметр(2,глКонстанта("ФирмаОсновногоСклада")); RS_1.УстПараметр(3,Товар); КолРез = RS_1.ВыполнитьСкалярный(); |
|||
14
zenon46
28.09.21
✎
19:26
|
Последние 2 строки, вызываются через функцию, я для удобства чтения объединил.
|
|||
15
zenon46
28.09.21
✎
19:46
|
Все ребзо, разобрался, спасибо за наводку!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |