powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Хранимая процедура возвращает пусто...
13 сообщений из 38, страница 2 из 2
Хранимая процедура возвращает пусто...
    #38189596
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaПридется параметр вводить - формат даты...Не нужно.
Достаточно передавать дату в требуемом формате и проверять её валидность перед использованием.
...
Рейтинг: 0 / 0
Хранимая процедура возвращает пусто...
    #38189610
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitНе нужно.
Достаточно передавать дату в требуемом формате и проверять её валидность перед использованием.
Я не могу контролировать что сунут в ту хранимую процедуру... Да и проверять на валидность не всегда можно.
Пример
02/01/20013
Это 2-е января или 1-е февраля?
...
Рейтинг: 0 / 0
Хранимая процедура возвращает пусто...
    #38189642
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaЯ не могу контролировать что сунут в ту хранимую процедуру...В таком случае передавайте дату как строку, т. е. Date As %String, в ODBC-формате, а в коде делайте её приведение $zdh("2013-03-01",3) с обработкой ошибок.
...
Рейтинг: 0 / 0
Хранимая процедура возвращает пусто...
    #38189689
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitВ таком случае передавайте дату как строку, т. е. Date As %String, в ODBC-формате, а в коде делайте её приведение $zdh("2013-03-01",3) с обработкой ошибок.
Лады, спасибо.
...
Рейтинг: 0 / 0
Хранимая процедура возвращает пусто...
    #38189703
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На этом пока остановлюсь...
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
/// ФИО гражданина
/// <table>
/// <tr>
/// <td><b>Urn</b></td>
/// <td>Urn гражданина</td>
/// </tr>
/// <tr>
/// <td><b>Date</b></td>
/// <td>На какую дату (формат ODBC или хоролог)</td>
/// </tr>
/// <tr>
/// <td><b>Type</b></td>
/// <td>0-Ф|И|О, 1-фамилия, 2-имя, 3-отчество, 4-фамилия и инициалы, 5-инициалы и фамилия</td>
/// </tr>
/// </table>
ClassMethod name(Urn As %String, Date As %String, Type As %Integer) As %String [ SqlProc ]
{
	s:$g(Date)="" Date=+$h
	s Type=$g(Type)
	s:Date["-" Date=$zdh("2013-03-01",3)
	d $system.SQL.SetSelectMode(0)
	s sql="Select Top 1 * "
	s sql=sql_" From soi_arh_data_cls.name as a"
	s sql=sql_" Where a.parent in ("
	s sql=sql_"    Select b.urn"
	s sql=sql_"    From soi_arh_data.name as b"
	s sql=sql_"    Where b.citizen=?"
	s sql=sql_" )"
	s sql=sql_" And a.Dat<=?"
	s sql=sql_" Order by Dat desc"
	s o=##class(%ResultSet.SQL).%Prepare(sql,.err,"",Urn,Date)
	s name=""
	s dlm="|"
	if o.%Next() {
		s $p(name,dlm)=o.%Get("surname")
		s $p(name,dlm,2)=o.%Get("name")
		s $p(name,dlm,3)=o.%Get("patronymic")
	}
	k o
	q:Type=0 name
	q:Type>3 $$nameShort(Type-3)
	q:Type $p(name,dlm,Type)
	q $tr(name,dlm," ")
nameShort(Type) // Фимилия + инициалы
	s str=$p(name,dlm)
	s str1=""
	s val=$p(name,dlm,2)
	s:val'="" str1=$e(val)_"."
	s val=$p(name,dlm,3)
	s:val'="" str1=str1_$e(val)_"."
	i Type=1 s:str1'="" str=str_" "_str1
	i Type=2 s:str1'="" str=str1_" "_str
	q str
}


P.S.
Модерам: Зря разукрашиваете код в сообщениях... При копировании все эти цветовые потроха мешают. А копировать с экрана - отсутствуют правильные отступы, да и шрифт для программ не подходящий...
...
Рейтинг: 0 / 0
Хранимая процедура возвращает пусто...
    #38189874
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit krvsa ,

Всё дело в контексте вызова.

Если запустите метод из терминала, то
$system.SQL.GetSelectMode() = 0

Если как ХП, то
$system.SQL.GetSelectMode() = 1

Select Mode

Поскольку используете класс %ResultSet.SQL , в котором свойство %RuntimeMode приватное, то остаётся вариант предложенный Блок А.Н. .

PS: ещё проверьте формат получаемого параметра Date : возможно, в одном случае он приходит в виде 62900, а в другом - "2013-03-19".

Да, и почему не используете %SQL.Statement ? Он удобнее6 быстрее работает и %SelectMode свойство есть.
...
Рейтинг: 0 / 0
Хранимая процедура возвращает пусто...
    #38189893
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaМодерам: Зря разукрашиваете код в сообщениях... При копировании все эти цветовые потроха мешают. А копировать с экрана - отсутствуют правильные отступы, да и шрифт для программ не подходящий...Сомневаюсь, что им настолько нечего делать
Раскрашивает код движок форума, к которому у них нет доступа.
...
Рейтинг: 0 / 0
Хранимая процедура возвращает пусто...
    #38189913
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.Сомневаюсь, что им настолько нечего делать
Раскрашивает код движок форума, к которому у них нет доступа.
Напрасно сомневаешся...
Посмотри моё первое сообщение в теме - это не расскараска движка. То рука модера!
...
Рейтинг: 0 / 0
Хранимая процедура возвращает пусто...
    #38189918
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шваров ЕвгенийДа, и почему не используете %SQL.Statement ? Он удобнее6 быстрее работает и %SelectMode свойство есть.
Даже не знаю что и ответить...
...
Рейтинг: 0 / 0
Хранимая процедура возвращает пусто...
    #38189929
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шваров ЕвгенийОн удобнее
Не совсем понял про удобство... Можно использовать более удобно чем
Код: vbnet
1.
d $system.SQL.SetSelectMode(0)


Тогда как еще удобнее?

Шваров Евгенийбыстрее работает
А тут-то в чем быстрота проявляется?
...
Рейтинг: 0 / 0
Хранимая процедура возвращает пусто...
    #38189946
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.Сомневаюсь, что им настолько нечего делать
Раскрашивает код движок форума, к которому у них нет доступа.krvsaНапрасно сомневаешся... krvsa дело говорит: 13425888
...
Рейтинг: 0 / 0
Хранимая процедура возвращает пусто...
    #38190011
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaНе совсем понял про удобство... Можно использовать более удобно чемkrvsaТогда как еще удобнее?Ссылку я уже давал выше: 14066344
Можно менять режим выборки или на уровне всего процесса (для %ResultSet.SQL) или на уровне конкретного объекта %SQL.Statement .
krvsaА тут-то в чем быстрота проявляется?Не столько быстрота, сколько возможности и рекомендации самой InterSystems: Старые классы Result Set (первые пять предложений)
...
Рейтинг: 0 / 0
Хранимая процедура возвращает пусто...
    #38190120
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitМожно менять режим выборки или на уровне всего процесса (для %ResultSet.SQL) или на уровне конкретного объекта %SQL.Statement .
Про режим я понял... А вот про какой-то "объект" не совсем. И в аглицком я не силён...
...
Рейтинг: 0 / 0
13 сообщений из 38, страница 2 из 2
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Хранимая процедура возвращает пусто...
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]