Переключение на Главную Страницу Страницы: 1 ... 4 5 [6] 7 8  ОтправитьПечать
Очень популярная тема (более 25 ответов) Выборка остатков прямым запросом (число прочтений - 30208 )
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Выборка остатков прямым запросом
Ответ #75 - 23. Сентября 2010 :: 11:26
Печать  
А у меня в таком варианте, как в (60), вообще ничего не считает, результат постоянно выдает нулевой:

-------------------------------------------------------------------------            стрдатыТА=строка(формат(НачМесяца(ПолучитьДатуТА()),"ДГГГГММДД"));
           
           //Остатки на основном складе
           RS_ОстНаСкладе=СоздатьОбъект("ODBCRecordset");
           ТекстЗапроса_ОстНаСкладе = "
           |SET NOCOUNT ON
           |declare @ВыбТовар Char(9)
           |SET @ВыбТовар = ?
           |SELECT
           |SUM($Рег.Количество) as Количество
           |FROM
           |$РегистрИтоги.ОстаткиТоваров as Рег With (NOLOCK)
           |WHERE
           |Рег.PERIOD= cast('"+стрдатыТА+"'as datetime) AND
           |$Рег.Товар = @ВыбТовар AND
           |$Рег.Склад = :спСкладОсновной";
           
           RS_ОстНаСкладе.УстановитьТекстовыйПараметр("спСкладОсновной",спСкладОсновной);
           RS_ОстНаСкладе.Подготовить(ТекстЗапроса_ОстНаСкладе);
           RS_ОстНаСкладе.ПостроитьПараметры();

                                         RS_ОстНаСкладе.УстПараметр(1,Тов);
                                         чОстатокНаСкладе=RS_ОстНаСкладе.Выполнить();

------------------------------------------------------------------

А в варианте (15) все было нормально...
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Выборка остатков прямым запросом
Ответ #76 - 23. Сентября 2010 :: 11:42
Печать  
Код
Выбрать все
чОстатокНаСкладе=RS_ОстНаСкладе.ВыполнитьСкалярный(); 

  
Наверх
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Выборка остатков прямым запросом
Ответ #77 - 23. Сентября 2010 :: 11:46
Печать  
так пишет:

{Справочник.Товары.ФормаСписка.ФормаСписка.Модуль(1047)}: State 07009, native 0, message [Microsoft][ODBC SQL Server Driver]Недопустимый индекс дескриптора
чОстатокНаСкладе=RS_ОстНаСкладе.ВыполнитьСкалярный();
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Выборка остатков прямым запросом
Ответ #78 - 23. Сентября 2010 :: 11:48
Печать  
leshik писал(а) 23. Сентября 2010 :: 11:42:
Код
Выбрать все
чОстатокНаСкладе=RS_ОстНаСкладе.ВыполнитьСкалярный(); 


так не работает
Результат :
Попытка № 1
ост=глОстТовара.ВыполнитьСкалярный();                        
{D:\1CPP_TEST\TEST_70_СВОДНЫЙОСТАТОК.ERT(102)}: State 07009, native 0, message [Microsoft][ODBC SQL Server Driver]Недопустимый индекс дескриптора
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Выборка остатков прямым запросом
Ответ #79 - 23. Сентября 2010 :: 11:55
Печать  
Я думаю что надо не использовать
ПостроитьПараметры()
А использовать ДобПараметр в явном виде
http://www.1cpp.ru/forum/YaBB.pl?num=1253692023/0#0
  
Наверх
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Выборка остатков прямым запросом
Ответ #80 - 23. Сентября 2010 :: 11:55
Печать  
бумс...

Выполнить / Execute

Синтаксис: Выполнить(ТекстSQL)

Параметры:
ТекстSQL - тип: Строка. SQL запрос не возвращающий результат набор данных.

Возвращает: тип: Число. 1 - запрос выполнился успешно, 0 - безуспешно, описание ошибки можно получить, вызвав метод ПолучитьОписаниеОшибки.

Описание: позволяет выполнить SQL запрос, без возврата результата выборки. Метод в основном предназначен для выполнения запросов вставки, обновления, вызова процедур.
  
Наверх
 
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Выборка остатков прямым запросом
Ответ #81 - 23. Сентября 2010 :: 12:00
Печать  
Цитата:
А использовать ДобПараметр в явном виде


так же дольше выходит в разы, ниже результаты теста приводились...
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Выборка остатков прямым запросом
Ответ #82 - 23. Сентября 2010 :: 12:02
Печать  
Neo писал(а) 23. Сентября 2010 :: 12:00:
Цитата:
А использовать ДобПараметр в явном виде


так же дольше выходит в разы, ниже результаты теста приводились...

не у всех в разы. у меня в пол раза всего
  

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


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Выборка остатков прямым запросом
Ответ #83 - 23. Сентября 2010 :: 12:03
Печать  
leshik писал(а) 23. Сентября 2010 :: 11:55:
Я думаю что надо не использовать
ПостроитьПараметры()
А использовать ДобПараметр в явном виде
http://www.1cpp.ru/forum/YaBB.pl?num=1253692023/0#0

так  плохо смотри №64
  
Наверх
 
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Выборка остатков прямым запросом
Ответ #84 - 23. Сентября 2010 :: 12:05
Печать  
Цитата:
у меня в пол раза всего


В полраза, это то есть быстрее?   Подмигивание
  
Наверх
 
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Выборка остатков прямым запросом
Ответ #85 - 23. Сентября 2010 :: 12:23
Печать  
А вот это что означает?

Цитата:
глОстТовара.РежимRPC(1);


что запрос будет выполняться как параметрический?
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Выборка остатков прямым запросом
Ответ #86 - 23. Сентября 2010 :: 12:34
Печать  
Neo писал(а) 23. Сентября 2010 :: 12:05:
Цитата:
у меня в пол раза всего


В полраза, это то есть быстрее?   Подмигивание

сори, в полтора
  

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


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Выборка остатков прямым запросом
Ответ #87 - 23. Сентября 2010 :: 14:38
Печать  
Разобрался тест из #56 неправильный результат
там был
текстзапроса = "....";
запрос без параметров ( ?  )
а вызов был
ост=глОстТовара.ВыполнитьСкалярный();  // Текст запроса не указан

т.е выполнялся пустой запрос

Сейчас еще раз сделаю серию тестов.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Выборка остатков прямым запросом
Ответ #88 - 23. Сентября 2010 :: 15:13
Печать  
Вот новый тест
перед каждой серией очищал кеш процедур и буфер данных
Сервер боевой. Сейчас работает почти без нагрузки
т.е занят только тестом

количество строк всего в ТА = 13387

SELECT count(*)
FROM   rg99 as Рег (NoLock)
WHERE  Рег.PERIOD= cast('20101001' as datetime)
  

test_70_______________.ert ( 33 KB | Загрузки )
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Выборка остатков прямым запросом
Ответ #89 - 23. Сентября 2010 :: 15:15
Печать  
результат
Стандартный Сводный остаток
8.198   7.415   6.905   6.258   6.179   6.303   6.309   6.609   6.618   6.015  

Прямой запрос  + Параметр + ПостроитьПараметры
5.128   5.288   5.738   5.444   5.491   5.187   5.12   5.069   4.963   5.029  

Прямой запрос  + УстановитьТекстовыйПараметр
6.87   5.132   5.292   5.344   5.457   5.464   5.152   5.14   5.14   5.152  

Прямой запрос  + Параметр + ДобПараметр
5.503   5.149   5.114   5.123   5.025   5.153   5.086   4.97   4.952   5.182  

Прямой запрос  + Вызов хранимой процедуры  test5
6.176   5.911   5.042   6.19   6.05   6.137   5.762   7.062   6.483   5.087  

-
PS Могу прогнать завтра днем под нагрузкой когда все будут работать.
А также завтра вечером монопольно
а то результат все равно плывет
только что запустил xp
Прямой запрос  + Параметр + ДобПараметр
5.013   5.089   4.988   4.982   5.002   5.263   5.451   5.413   5.43   4.999  
Прямой запрос  + Вызов хранимой процедуры  test5
5.102   5.051   5.03   5.033   5.041   5.048   5.036   5.041   5.031   5.201  
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 4 5 [6] 7 8 
ОтправитьПечать