Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
01.02.2008, 10:36
|
|||
|---|---|---|---|
Может ли функция вернуть два значения? |
|||
|
#18+
Привет! Ситуация такая: Есть таблица Сотрудников, в таблице Первичный ключ состоит из двух полей. Есть имя пользователя у сотрудника. Необходимо в таблицу задачи, забить данные сотрудника по имени пользователя. Тоесть придётся написать функцию которая возвращает Ключ сотрудника. А так как ключ состоит из двух полей то видимо придётся писать две функции, или есть другие варианты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.02.2008, 11:17
|
|||
|---|---|---|---|
Может ли функция вернуть два значения? |
|||
|
#18+
LeximusПривет! Ситуация такая: Есть таблица Сотрудников, в таблице Первичный ключ состоит из двух полей. Есть имя пользователя у сотрудника. Необходимо в таблицу задачи, забить данные сотрудника по имени пользователя. Тоесть придётся написать функцию которая возвращает Ключ сотрудника. А так как ключ состоит из двух полей то видимо придётся писать две функции, или есть другие варианты? а два выходных параметра? или рекордсет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.02.2008, 12:18
|
|||
|---|---|---|---|
Может ли функция вернуть два значения? |
|||
|
#18+
Winnipuh LeximusПривет! Ситуация такая: Есть таблица Сотрудников, в таблице Первичный ключ состоит из двух полей. Есть имя пользователя у сотрудника. Необходимо в таблицу задачи, забить данные сотрудника по имени пользователя. Тоесть придётся написать функцию которая возвращает Ключ сотрудника. А так как ключ состоит из двух полей то видимо придётся писать две функции, или есть другие варианты? а два выходных параметра? или рекордсет?Создать свой тип (type) и возвращать переменную этого типа. А в нём хоть десяток полей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.02.2008, 13:24
|
|||
|---|---|---|---|
Может ли функция вернуть два значения? |
|||
|
#18+
Ну вот например Таблицы: Таблица: Employees 1.Id1 2.Id2 3.Name 4.User Таблица: Tasks 1.Id 2.Date 3.Name 4.Emp_Id1 4.Emp_Id2 Получается функции надо создавать две, ну вот образно говоря: Код: plaintext 1. 2. 3. 4. И в результате получается что фактически два раза из одной и тойже таблицы будет выборка, хотя нужна одна и таже строка. В итоге потеря времени! А может можно какнибудь проще сделать и быстрее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.02.2008, 13:31
|
|||
|---|---|---|---|
|
|||
Может ли функция вернуть два значения? |
|||
|
#18+
Возвращать свой тип или массив. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.02.2008, 13:55
|
|||
|---|---|---|---|
Может ли функция вернуть два значения? |
|||
|
#18+
функция возвращает одно значение. Но оно (значение) может быть весьма сложно устроено (от типов, до сетов этих типов). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.02.2008, 14:02
|
|||
|---|---|---|---|
Может ли функция вернуть два значения? |
|||
|
#18+
Leximus образно говоря: Код: plaintext 1. 2. 3. отвлекаясь от синтаксиса, на вашем примере function EmpId(select Id1,Id2 from Employees where User=current_user) INSERT INTO Tasks (Id, Date, Name, Emp_Id1, Emp_Id2) VALUES (1, '22.11.2010', 'Тест', EmpId.Id1, EmpId.Id2) как обеспечить вызов один раз - см. в доке STABLE . или приемы вида ,foo.fld1 ,... ,foo.fldN FROM ... , (SELECT ..... From .... LIMIT 1) AS foo ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.02.2008, 14:24
|
|||
|---|---|---|---|
Может ли функция вернуть два значения? |
|||
|
#18+
[quot 4321function EmpId(select Id1,Id2 from Employees where User=current_user) INSERT INTO Tasks (Id, Date, Name, Emp_Id1, Emp_Id2) VALUES (1, '22.11.2010', 'Тест', EmpId.Id1, EmpId.Id2) [/quot] А в этой ситуации функция два раза вызываться будет или один? И может можно сделать константу каждому пользователю, ну например чтобы вызове select UserId у каждого пользователя своё значение возвращалось, или это только через функцию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.02.2008, 15:16
|
|||
|---|---|---|---|
Может ли функция вернуть два значения? |
|||
|
#18+
LeximusА в этой ситуации функция два раза вызываться будет или один?никакой "этой" ситуации еще нет. есть псевдокод, не отвечающий никаким требованиям к оформлению ф-й в Пг. Когда нарисуете нечто более менее похожее - запихайте в ф-ю нотис, и просмотрите кол-во сообщений. ПОиграйте с модификатором STABLE/и т.п. LeximusИ может можно сделать константу каждому пользователю, ну например чтобы вызове select UserId у каждого пользователя своё значение возвращалось, или это только через функцию?поищите поиском по ~~ константы сеанса Решения есть. В т.ч. - через Temporary таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=53&mobile=1&tid=2004667]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
139ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 467ms |

| 0 / 0 |
