berezdetsky писал(а) 27. Марта 2008 :: 09:08:leshik писал(а) 27. Марта 2008 :: 08:51:А разве параметризированный запрос не быстрее будет работать?
Там экономия на времени компиляции, а не на времени выполнения. Если в #0 речь идёт о форме списка, конечно, подготовленный запрос или RPCMode будет полезно.
Точно, речь идет о форме списка. Пытаюсь сделать подготовленный запрос так:
ТекстЗапроса = "
|@Подразделение = ?
|@Номенклатура = ?
|Select
| Номенклатура [Товар $Справочник.Номенклатура],
| Подразделение [Склад $Справочник.Подразделения],
| КоличествоОстаток ОстатокТовара,
| CASE WHEN ($Подразделения.КонтрольМинОстатка = 1) AND (остатки.КоличествоОстаток < $Номенклатура.МинимальныйОстаток)
| THEN 35
| ELSE 0
| END Пикт
|FROM
| $РегистрОстатки.Склад(,,
| (Номенклатура = @Номенклатура) And (Подразделение = @Подразделение),
| (Подразделение, Номенклатура),
| Количество
| ) остатки
| INNER JOIN $Справочник.Подразделения AS Подразделения (nolock) ON остатки.Подразделение = Подразделения.ID
| INNER JOIN $Справочник.Номенклатура AS Номенклатура (nolock) ON остатки.Номенклатура = Номенклатура.ID
|";
Запрос.Подготовить(ТекстЗапроса);
Запрос.ПостроитьПараметры();
Запрос.УстПараметр(1, СпПодр);
Запрос.УстПараметр(2, ВыбНоменклатура);
ТЗ = Запрос.ВыполнитьИнструкцию();
и получаю ошибку:
ТЗ = Запрос.ВыполнитьИнструкцию();
{E:\ПРОСТОТЕСТ.ERT(81)}: State 07009, native 0, message [Microsoft][ODBC SQL Server Driver]Недопустимый индекс дескриптора
Что-то не так. Но что?