Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с массивами, как передать значения массива 
:(
    Опции темы
ADAM83
Дата 18.1.2006, 08:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 13.1.2006

Репутация: нет
Всего: нет



Код

const cntT1=100; cntT2=60;
type T1=record
Spec1:integer;//специальности(шифр)
Spec2:integer;
Vuz1:integer;//ID ВУЗа
Vuz2:integer;
FormObuch:integer;//Форма обуч
Lang:integer;//Язык обуч
V1:integer;//здесь должен быть значения поля ID_V (если Spec1=IDSpec)
V2:integer;//здесь должен быть значения поля ID_V (если Spec2=IDSpec)
end;
    T2=record
ID_V:integer;
IDSpec:integer;
FormObuch:integer;
Lang:integer;
IDVuz:integer;
end;
var T1_arr:array[1..cntT1] of T1;   T2_arr:array[1..cntT2] of T2;


Первоначальные значения массивов показано прикрепленном файле.

Здесь я использую значения двух таблиц. Мне загнать (я уже загнал) их в массивы и обработать, и в конце обратно слить в таблицы (БД MSSQL). Просто с массивами быстрее же обрабатывается или я не прав?
Уважаемые эксперты, Вот такой вопрос:
smile Как мне применить цикл, чтоб в конце получить результат типа:
T1_arr[].V1= 110 220 445 440 111
T1_arr[].V2 = 220 333 111 222 330

надо как-то связать T1_arr[].V1=T2_arr[].IDVed и T1_arr[].V2=T2_arr[].IDVed
Спасибо заранее

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  ___________.JPG 48,50 Kb
PM MAIL   Вверх
chaos
Дата 18.1.2006, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: нет
Всего: 44



наверное не стоит извращаться с массивами!
я бы сделал все через SQL
Код

SELECT ID_V FROM T2_ARR WHERE IDVuz = (SELECT Vuz1 FROM T1_ARR)


Код

SELECT ID_V FROM T2_ARR WHERE IDVuz = (SELECT Vuz2 FROM T1_ARR)

PM WWW   Вверх
ADAM83
Дата 18.1.2006, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 13.1.2006

Репутация: нет
Всего: нет



Цитата

наверное не стоит извращаться с массивами!
я бы сделал все через SQL

Как я уже написал, с массивами быстрее работать, потому что у меня в таблице около 10000 записей. А на SQL-языке у меня не получилось, в смсысле получилось но не то. Вот что я писал:
Код

SELECT     TOP 100 PERCENT k.KodCT, k.Sp1G, k.Vuz1, k.Sp2G, k.Vuz2, k.Sp3G, k.Vuz3, k.Sp4G, k.Vuz4, k.FormObuch, 
       k.Lang, T2_1.IDVed AS V1, T2_2.IDVed AS V2, T2_3.IDVed AS V3, T2_4.IDVed AS V4
FROM         dbo.tbKonk_Prob k INNER JOIN
                      dbo._k_tbVed_20050809 T2_1 ON k.Sp1G = T2_1.IDSpec AND k.Vuz1 = T2_1.IDVPZ AND k.FormObuch = T2_1.FormObuch AND k.Lang = T2_1.Lang INNER JOIN
                      dbo._k_tbVed_20050809 T2_2 ON k.Sp2G = T2_2.IDSpec AND k.Vuz2 = T2_2.IDVPZ AND k.FormObuch = T2_2.FormObuch AND k.Lang = T2_2.Lang INNER JOIN
                      dbo._k_tbVed_20050809 T2_3 ON k.Sp3G = T2_3.IDSpec AND k.Vuz3 = T2_3.IDVPZ AND k.FormObuch = T2_3.FormObuch AND k.Lang = T2_3.Lang INNER JOIN
                      dbo._k_tbVed_20050809 T2_4 ON k.Sp4G = T2_4.IDSpec AND k.Vuz4 = T2_4.IDVPZ AND k.FormObuch = T2_4.FormObuch AND k.Lang = T2_4.Lang
WHERE     EXISTS
                          (SELECT     1
                            FROM          dbo._k_tbVed_20050809
                            WHERE      IDSpec = k.Sp1G AND IDVPZ = k.Vuz1 AND FormObuch = k.FormObuch AND Lang = k.Lang 
                            GROUP BY IDSpec, Lang 
                            HAVING      MAX(IDVed) = T2_1.IDVed) AND EXISTS
                          (SELECT     1
                            FROM          dbo._k_tbVed_20050809
                            WHERE      IDSpec = k.Sp2G AND IDVPZ = k.Vuz2 AND FormObuch = k.FormObuch AND Lang = k.Lang
                            GROUP BY IDSpec, Lang
                            HAVING      MAX(IDVed) = T2_2.IDVed) AND EXISTS
                          (SELECT     1
                            FROM          dbo._k_tbVed_20050809
                            WHERE      IDSpec = k.Sp3G AND IDVPZ = k.Vuz3 AND FormObuch = k.FormObuch AND Lang = k.Lang
                            GROUP BY IDSpec, Lang
                            HAVING      MAX(IDVed) = T2_3.IDVed) AND EXISTS
                          (SELECT     1
                            FROM          dbo._k_tbVed_20050809
                            WHERE      IDSpec = k.Sp4G AND IDVPZ = k.Vuz4 AND FormObuch = k.FormObuch AND Lang = k.Lang
                            GROUP BY IDSpec, Lang
                            HAVING      MAX(IDVed) = T2_4.IDVed)
ORDER BY k.KodCT

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1736 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.