Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Параметризированные запросы (число прочтений - 2931 )
maxanp
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 1
Зарегистрирован: 14. Августа 2006
Параметризированные запросы
14. Августа 2006 :: 12:08
Печать  
Только начал работать с 1с++, я вот такой вопрос: делаю такой запрос:
Код
Выбрать все
	ТекстЗапроса = "
	|select	Рег.КолОстаток as Количество
	|
	|from	$РегистрОстатки.Ост(,,Фирма = ? and Склад = ? and Товар = ?,(Товар),(Кол)) as Рег
	|
	|";

	РС.Подготовить(ТекстЗапроса);
	РС.ПостроитьПараметры();

 



На
Код
Выбрать все
РС.ПостроитьПараметры(); 

возвращает ошибку, что недопустимый индекс дескриптора. Подскажите где копать?
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Параметризированные запросы
Ответ #1 - 14. Августа 2006 :: 12:45
Печать  
Может тут как раз срабатывает ситуация из примечания:
Цитата:
Примечание: это альтернатива методу ДобПараметр; не каждый запрос и не на каждый драйвер сможет построить параметры автоматически; как правило только самые простые запросы. Кроме того применение этого метода приводит к лишней обработке текста запроса сервером и/или драйвером.

и имеет смысл использовать метод ДобПараметр() ?
  

FormEx developer
Наверх
www  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Параметризированные запросы
Ответ #2 - 14. Августа 2006 :: 13:31
Печать  
+ и еще параметризацию в ВТ следует делать через переменные:
Код
Выбрать все
ТекстЗапроса = "
|declare @p1 char(9)
|declare @p2 char(9)
|declare @p3 char(9)
|set @p1=?
|set @p2=?
|set @p3=?
|
|select	Рег.КолОстаток as Количество
|from	$РегистрОстатки.Ост(,,Фирма = @p1 and Склад = @p2 and Товар = @p3,(Товар),(Кол)) as Рег
|"; 

  

1&&2&&3
Наверх
 
IP записан
 
1cvirus
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 89
Зарегистрирован: 24. Мая 2006
Re: Параметризированные запросы
Ответ #3 - 22. Августа 2006 :: 06:49
Печать  
а как правильнее получить остатки на ТА : РегистрОстатки или РегистрИтоги?
  
Наверх
 
IP записан
 
DrACe
1c++ donor
1c++ power user
Отсутствует


1С++ любитель

Сообщений: 447
Местоположение: г. Новосибирск
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Параметризированные запросы
Ответ #4 - 22. Августа 2006 :: 06:58
Печать  
1cvirus писал(а) 22. Августа 2006 :: 06:49:
а как правильнее получить остатки на ТА : РегистрОстатки или РегистрИтоги?

ВТ сама построит запрос к ТаблицеИтогов, а если нужно - объединит ее с таблицей движений - в этом ее основное предназначение

а вообще при запросе к ТА - годится просто таблица итогов (можешь посмотреть этот запрос используя ВТ и включив отладку)
  
Наверх
 
IP записан
 
1cvirus
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 89
Зарегистрирован: 24. Мая 2006
Re: Параметризированные запросы
Ответ #5 - 22. Августа 2006 :: 07:46
Печать  
DrACe писал(а) 22. Августа 2006 :: 06:58:
1cvirus писал(а) 22. Августа 2006 :: 06:49:
а как правильнее получить остатки на ТА : РегистрОстатки или РегистрИтоги?

ВТ сама построит запрос к ТаблицеИтогов, а если нужно - объединит ее с таблицей движений - в этом ее основное предназначение

а вообще при запросе к ТА - годится просто таблица итогов (можешь посмотреть этот запрос используя ВТ и включив отладку)

у меня так и работает - но без переменных
я и спросил из-за фразы 
"+и еще параметризацию в ВТ следует делать через переменные:"
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать