Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) ТП+SQL и order by (число прочтений - 6516 )
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
ТП+SQL и order by
02. Февраля 2012 :: 03:17
Печать  
Народ, кто нить решал такую проблему.
Есть ТП+SQL ввиде поставщика, в методе УстКлючПорядка() у поставщика указываешь по каким полям производится сортировка.
А вот реально сделать так, чтобы при тыкании на ТП шапки какой либо колонки сортировка менялась как это можно было реализовать в ТП+ТЗ?
Понятно что там параметризированный запрос, вопрос реально ли подсовывать туда КлючПорядка другой?
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
pavel_tr
Senior Member
****
Отсутствует



Сообщений: 279
Местоположение: Казань
Зарегистрирован: 14. Октября 2006
Пол: Мужской
Re: ТП+SQL и order by
Ответ #1 - 02. Февраля 2012 :: 05:00
Печать  
Конечно, всё работает. УстКлючПорядка(), потом ОбновитьСтроки(). Вот только в зависимости от наличия/отсутствия нужных индексов по полям сортировки могут возникнуть тормоза при обновлении
  
Наверх
 
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+SQL и order by
Ответ #2 - 02. Февраля 2012 :: 07:40
Печать  
проблема в том, что не пашет Улыбка 1=1 это мне так нужно для простоты добавления условий по фильтрам отдельно, остальное условие и сортировку она сама делает.

этот первый раз при выборе сортировки работает, как только скролишь вверх скажем, срабатывает снова запрос ниже и падает с ошибкой что мол Line 1: "incorrect syntax near ')' "

Код
Выбрать все
select top 20
rtrim(status.name) as Статус,
задачи.id as ид,
задачи.date_in as ДатаСоздания,
rtrim(задачи.content) as Задача
from orders as задачи with (nolock)
	left outer join Statuses as status with (nolock) on status.id=задачи.status_id
	left outer join users as юзерЗаказчик with (nolock) on юзерЗаказчик.id=задачи.customer
	left outer join users as юзерИсполнитель with (nolock) on юзерИсполнитель.id=задачи.executor
where 1=1
order by rtrim(status.name)
 



Код
Выбрать все
{call sp_executesql(N'
select top 20
rtrim(status.name) as Статус,
задачи.id as ид,
задачи.date_in as ДатаСоздания,
rtrim(задачи.content) as Задача
from orders as задачи with (nolock)
	left outer join Statuses as status with (nolock) on status.id=задачи.status_id
	left outer join users as юзерЗаказчик with (nolock) on юзерЗаказчик.id=задачи.customer
	left outer join users as юзерИсполнитель with (nolock) on юзерИсполнитель.id=задачи.executor
where (rtrim(status.name) > @OKParam_0) and (1=1)
order by rtrim(status.name)
',N'@OKParam_0 '
,'Подтверждена')}
 



и тут как раз суть, одно дело когда отталкивается чисто по уникальному числовому полю, а другое когда оно не уникально само собой (иначе сортировать не очень то и нужно было бы).
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: ТП+SQL и order by
Ответ #3 - 02. Февраля 2012 :: 08:50
Печать  
В УстановитьКлючПорядка() что передаешь?
д.б. что-то типа УстановитьКлючПорядка("Статус,ид") - т.е. сочетание подей, образующих уникальный индекс
  
Наверх
 
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+SQL и order by
Ответ #4 - 02. Февраля 2012 :: 10:21
Печать  
вот последовательно,
1. открыл отчет
2. потом скрольнул.
3. сделал сортировку (тыкнул на колонку)
все отлично вроде

4. скрольнул с сортировкой этой и ошибка incorrect syntax near ','.
4 запроса в описанной последовательности.

Код
Выбрать все
{call sp_executesql(N'
select top 20
задачи.id as ид,
rtrim(status.name) as Статус,
задачи.date_in as ДатаСоздания,
rtrim(задачи.content) as Задача
from orders as задачи with (nolock)
	left outer join Statuses as status with (nolock) on status.id=задачи.status_id
	left outer join users as юзерЗаказчик with (nolock) on юзерЗаказчик.id=задачи.customer
	left outer join users as юзерИсполнитель with (nolock) on юзерИсполнитель.id=задачи.executor
where (rtrim(status.name) > @OKParam_0 or задачи.id > @OKParam_1 and rtrim(status.name) = @OKParam_0) and (1=1)
order by rtrim(status.name), задачи.id
',N'@OKParam_0 ,@OKParam_1 int'
,'Подтверждена',1)}
 

  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: ТП+SQL и order by
Ответ #5 - 03. Февраля 2012 :: 04:25
Печать  
Вроде запрос как запрос, никакого криминала. Попробуй выполнить этот запрос в QA - там всё-же более информативные сообщения об ошибках. Вместо параметров @OKParam_nn тупо подставить их значения.
И ещё, вместо rtrim(status.name) лучше пиши просто status.name - серверу сортировать легче будет
  
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: ТП+SQL и order by
Ответ #6 - 03. Февраля 2012 :: 05:26
Печать  
pavlo писал(а) 02. Февраля 2012 :: 10:21:
вот последовательно,
.....
order by rtrim(status.name), задачи.id
',N'@OKParam_0 ,@OKParam_1 int'
,'Подтверждена',1)}
[/code]

  
Наверх
wwwICQ  
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+SQL и order by
Ответ #7 - 03. Февраля 2012 :: 07:52
Печать  
ADirks писал(а) 03. Февраля 2012 :: 04:25:
Вроде запрос как запрос, никакого криминала. Попробуй выполнить этот запрос в QA - там всё-же более информативные сообщения об ошибках. Вместо параметров @OKParam_nn тупо подставить их значения.
И ещё, вместо rtrim(status.name) лучше пиши просто status.name - серверу сортировать легче будет

ну это стоит в селекте как мне нужно, а так в сортировку делает класс, а не я Улыбка Могу и в селекте убрать конечно, но вопрос есть ли сильный пока смысл Подмигивание так то понятно что быстрее будет без него.
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+SQL и order by
Ответ #8 - 03. Февраля 2012 :: 07:54
Печать  
Anatol писал(а) 03. Февраля 2012 :: 05:26:
pavlo писал(а) 02. Февраля 2012 :: 10:21:
вот последовательно,
.....
order by rtrim(status.name), задачи.id
',N'@OKParam_0 ,@OKParam_1 int'
,'Подтверждена',1)}
[/code]



повоторюсь это не я формирую же, а так сказать поставщик когда я ему КлючУстПорядка() передаю, причем передаю просто названия колонок после AS которые Улыбка
ИД - это уникальное поле однозначно на уровне скуля делается нумерация.

мой запрос ниже:

Код
Выбрать все
	|select задачи.id as ид
	|	, задачи.date_in as ДатаСоздания
	|	, rtrim(status.name) as Статус
	|	, rtrim(задачи.content) as Задача
	|from orders as задачи with (nolock)
	|	left outer join Statuses as status with (nolock) on status.id=задачи.status_id
	|	left outer join users as юзерЗаказчик with (nolock) on юзерЗаказчик.id=задачи.customer
	|	left outer join users as юзерИсполнитель with (nolock) on юзерИсполнитель.id=задачи.executor
	|where 1=1
 

  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: ТП+SQL и order by
Ответ #9 - 03. Февраля 2012 :: 08:51
Печать  
значит багзила
  
Наверх
wwwICQ  
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+SQL и order by
Ответ #10 - 03. Февраля 2012 :: 09:34
Печать  
Anatol писал(а) 03. Февраля 2012 :: 08:51:
значит багзила

Улыбка знать бы как по точнее описать, потому как специфично, именно при скролинге косячит, а когда просто сортируешь в пределах видимого отлично сортирует, как только мышой покрутил вверх скажем и все эта ошибка Улыбка
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: ТП+SQL и order by
Ответ #11 - 03. Февраля 2012 :: 09:52
Печать  
как получится + ссылка на эту тему
  
Наверх
wwwICQ  
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: ТП+SQL и order by
Ответ #12 - 03. Февраля 2012 :: 10:06
Печать  
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: ТП+SQL и order by
Ответ #13 - 03. Февраля 2012 :: 11:22
Печать  
Случайно нет текстовых полей с апострофом в справочнике?
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: ТП+SQL и order by
Ответ #14 - 04. Февраля 2012 :: 04:44
Печать  
какой тип колонки orders.content ?

обратите внимание что тип параметра не определился:
N'@OKParam_0 '
  

1&&2&&3
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать