Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Передаю документ как char(23), char(13), char(9).. (число прочтений - 2937 )
Kapet
Senior Member
****
Отсутствует


Ламер - вансист

Сообщений: 262
Местоположение: Ukraine, Kyiv
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Передаю документ как char(23), char(13), char(9)..
19. Февраля 2007 :: 10:45
Печать  
В прямой (достаточно громоздкий) параметризированный запрос сейчас мне приходится передавать один и тот же документ методом ДобПараметр() как три аргумента char(23), char(13), char(9).
Вопрос: а можно ли как-то в тексте запроса из документа как char(23) получить и char(13), и char(9) что бы избежать такой избыточной затроинности?
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Передаю документ как char(23), char(13), char(
Ответ #1 - 19. Февраля 2007 :: 10:59
Печать  
right(@p23, 13)
right(@p23, 9)
  

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


Ламер - вансист

Сообщений: 262
Местоположение: Ukraine, Kyiv
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Передаю документ как char(23), char(13), char(
Ответ #2 - 19. Февраля 2007 :: 11:30
Печать  
Пробовал, не работает...

Вот текст запроса, где @docum5 и @docum6 - один и тот же документ, разница только в:
...
_RS2.ДобПараметр(1,14,9,0);
_RS2.ДобПараметр(1,14,23,0);
...
_RS2.УстПараметр(1,ТД);
_RS2.УстПараметр(2,ТД);
Код
Выбрать все
ТекстЗапросаПоОтменеСчета="
|set nocount on
|declare @docum5 char(9)
|declare @docum6 char(23)
|set @docum5 = ?
|set @docum6 = ?
|select case	when ga.cld = 0 and ga.mrk = 0 then '"""+ШрифтОбычный+"""'
|		when ga.mrk = 1 then '"""+ШрифтПометкаУдаления+"""'
|		when ga.cld = 1 then case when pa.nt > 0 then '"""+ШрифтАннулирован+"""' else '"""+ШрифтСписанВДоход+"""' end
|		else 	'"""+ШрифтОбычный+"""'
|		end
|from
|	(
|	select 	j1.iddoc doc1, j1.iddocdef doc1_вид, j1.closed&1 cld, j1.ismark mrk
|	from 	_1sjourn j1(nolock)
|	where 	j1.iddocdef = $ВидДокумента.Счет and j1.iddoc = @docum5
|	) as ga
|	,
|	(
|	select count(*) nt
|	from _1scrdoc cr(nolock)
|		inner join _1sjourn j2(nolock) on cr.child_date_time_iddoc = j2.date_time_iddoc
|	where parentval = @docum6
|		and mdid = 0
|		and j2.iddocdef = $ВидДокумента.ОтменаСчета
|		and j2.closed & 1 = 1
|	) as pa
|"; 


Если вместо @docum5 ставлю ригхт(@docum6, 9) - брешет падлюка  Злой , выдает исключительно ШрифтОбычный, а так - работает  Печаль
  
Наверх
ICQ  
IP записан
 
DrACe
1c++ donor
1c++ power user
Отсутствует


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

Сообщений: 447
Местоположение: г. Новосибирск
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Передаю документ как char(23), char(13), char(
Ответ #3 - 19. Февраля 2007 :: 12:01
Печать  
попробуй так:
RIGHT(LEFT(@p23,15), 13)
RIGHT(LEFT(@p23,15), 9)
  
Наверх
 
IP записан
 
Kapet
Senior Member
****
Отсутствует


Ламер - вансист

Сообщений: 262
Местоположение: Ukraine, Kyiv
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Передаю документ как char(23), char(13), char(
Ответ #4 - 19. Февраля 2007 :: 12:08
Печать  
DrACe писал(а) 19. Февраля 2007 :: 12:01:
попробуй так:
RIGHT(LEFT(@p23,15), 13)
RIGHT(LEFT(@p23,15), 9)


Спасибо большое! Действительно, так заработало
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Передаю документ как char(23), char(13), char(
Ответ #5 - 19. Февраля 2007 :: 12:36
Печать  
Смущённый
  

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



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Передаю документ как char(23), char(13), char(
Ответ #6 - 21. Февраля 2007 :: 10:10
Печать  
Интересно посмотреть на разницу в скорости получение итога запроса с использованием строковых функций и без них, может все таки 2 раза передать парамтер вместо того чтобы SQL заставлять преобразовывать строку?
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать