Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Вопрос теоретический по методу ИТ "Пересечение" (число прочтений - 1864 )
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Вопрос теоретический по методу ИТ "Пересечение"
20. Сентября 2007 :: 10:08
Печать  
Код
Выбрать все
1C++ :: ИндексированнаяТаблица  | Ранее: Объединить / Merge | Далее: Разность / Difference
ИндексированнаяТаблица :: Пересечение / Conjunction

Синтаксис: Пересечение(ТЗ2, ИндексТекущейТЗ, ИндексТЗ2 [, флДобавлятьСтрокиТЗ2 = 1])

Параметры:
ТЗ2 - тип: ИндексированннаяТаблица. Таблица, с которой строится пересечение.
ИндексТекущейТЗ - тип: Строка, Число. Имя или номер индекса в текущей таблицы.
ИндексВторойТЗ - тип: Строка, Число. Имя или номер индекса в ТЗ2.
флДобавлятьСтрокиТЗ2 - тип: Число. Флаг добавления строк ТЗ2 в результат.
Описание: пересечение двух таблиц по ключевым полям. Результатом пересечения является таблица, в которой присутствуют строки текущей ТЗ, которые есть в ТЗ2, и строки ТЗ2, которые есть в текущей ТЗ (с учетом флДобавлятьСтрокиТЗ2). Совпадение строк определяется по индексам ИндексТекущейТЗ и ИндексТЗ2. Количество колонок в индексах должно быть одинаковым.
 



А зачем вообще в этом методе последний параметр? Какое же это будет пересечение если его использовать?

Если можно приведите примеры его использования (в смысле этого параметра)
  
Наверх
ICQ  
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Вопрос теоретический по методу ИТ "Пересечение
Ответ #1 - 20. Сентября 2007 :: 10:23
Печать  
Юзал давно это, не помню , но на реальных данных всё сам понял быстро. Просто запусти и увидишь
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Вопрос теоретический по методу ИТ "Пересечение
Ответ #2 - 20. Сентября 2007 :: 10:37
Печать  
Результат я увидел. Если взять пример из моей предыдущей темы, то получается так:

Первая таблица:
------------------------------------
Абонент  |  Адрес
------------------------------------
Абонент1   <пусто>
Абонент1   <пусто>
Абонент2   <пусто>
Абонент2   <пусто>

Вторая таблица:
------------------------------------
Абонент  |  Адрес
------------------------------------
Абонент1   Адрес1
Абонент2   Адрес2


Выполняем команду:
ИТ1.Пересечение(ИТ2, "Абонент", "Абонент", 1);


Результат:
------------------------------------
Абонент  |  Адрес
------------------------------------
Абонент1   <пусто>
Абонент1   <пусто>
Абонент2   <пусто>
Абонент2   <пусто>
Абонент1   Адрес1
Абонент2   Адрес2


То есть получается тоже самое, что и "Объединить".
А зачем это надо?
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Вопрос теоретический по методу ИТ "Пересечение
Ответ #3 - 20. Сентября 2007 :: 10:48
Печать  
es3000 писал(а) 20. Сентября 2007 :: 10:37:
А зачем это надо?

У тебя наборы данных непоказательные - поэтому и смысл неочевиден.
К примеру, добавь только в одну из таблиц какой-нибудь Абонент777 и при пересечении он в результат не попадет.
В этом отличие от метода Объединить.
...

По последнему параметру:
Сделано это для того, чтобы можно было в методах Пересечение и Разность получать только те строки ТЗ1, которые есть или которых нет в ТЗ2 (соответственно), без принудительного добавления в ТЗ1 строк из ТЗ2.

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

De quelle planète es-tu?
Наверх
 
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Вопрос теоретический по методу ИТ "Пересечение
Ответ #4 - 20. Сентября 2007 :: 13:22
Печать  
А если использовать последний флаг = 1, то Абонент777 согласно описания этого флага все равно добавится.
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Вопрос теоретический по методу ИТ "Пересечение
Ответ #5 - 20. Сентября 2007 :: 13:42
Печать  
es3000 писал(а) 20. Сентября 2007 :: 13:22:
А если использовать последний флаг = 1, то Абонент777 согласно описания этого флага все равно добавится.

Ты ошибаешься.
Не будет этого, ибо 777 прежде всего не попадает в пересечение множеств.

Метод работает четко согласно описанию: сначала из ТЗ1 удаляются строки ТЗ1, которые "отсутствуют" в ТЗ2, а уже потом, если последний флаг == 1, добавляются строки ТЗ2, которые "присутствуют" в ТЗ1.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать