Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Массивы как поля таблицы, как работать с массивами 
:(
    Опции темы
НурболКазбеков
Дата 13.1.2006, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Имеется таблицы Тabl1 (с полями: ID_Ved, IDSpec) и Tabl2 (с полями: ID_St, Spec1, Spec2, V1, V2) (даннные явл. примерные)
Код:
Цитата

type TSt=record
ID_St:Integer;
Spec1:Integer;
Spec2:Integer;
V1:Integer;
V2:Integer;
end;
TVed=record
ID_Ved:Integer;
IDSpec:Integer;
end;
var St:array[1..2] of TSt;
Ved:array[1..2] of TVed;



Цитата

Tabl1______________________________________
ID_St            Spec1        Spec2          V1          V2
  111              0505          0404          0            0//по умолчанию
  112              0404          0505          0            0
--------------------------------------------------------------------
Tabl2______________________________________
IDVed              IDSpec
100                  0505
200                  0404
-------------------------------------------------------------------

У меня вопрос таков: как программно сделать так, чтоб соответствующие значения поля IDVed
записался в поля V1 и V2 (например, для ID_St=111 должен быть V1=100 V2=200).
Можно было написать запрос, но мне нужно это действие сделать в массивах (первый раз столкнулся с массивами). smile
Заранее спасибо






PM MAIL   Вверх
FRAGNATIC
Дата 13.1.2006, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


..::Свирепый Кодер::..
**


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

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



Цитата(НурболКазбеков @ 13.1.2006, 11:52 Найти цитируемый пост)

var St:array[1..2] of TSt;
Ved:array[1..2] of TVed;

мало чё понял вообщем ) тут у тя записи типа рекорд вообщем )
от куда ты значения буш брать хз)
но к масивам которые я процетировал оброщатся так
ved[1].ID_Ved:=
ved[2].ID_Ved:=.. и тд =)
тока сначало надо создать их=)

PM MAIL   Вверх
Albinos_x
Дата 13.1.2006, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

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



это имел ввиду?:
Код
...
Tabl2.Field[1].AsInteger:=ved[1].ID_Ved;
...



--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
НурболКазбеков
Дата 13.1.2006, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А если сделать так:
Код

for i:=1 to 2 do
 case St[i] of
   Spec1: St[i].V1:= Ved[i].IDVed;
   Spec2: St[i].V2:= Ved[i].IDVed;
 end;


По-моему не получится, а вообще так присваивать значения к массиву можно или нет?

PM MAIL   Вверх
Albinos_x
Дата 13.1.2006, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

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



Цитата

case St[i] of

эта строчка не прокатит... тут аргумент должен быть перечисляемого типа.... поставь просто i, т.е.:
Код

for i:=1 to 2 do    
 case i of    
   1: St[i].V1:= Ved[i].IDVed;    
   2: St[i].V2:= Ved[i].IDVed;    
 end;

но смысла такой конструкции не вижу, т.к. проще так:
Код

St[1].V1:= Ved[1].IDVed;
St[2].V2:= Ved[2].IDVed;        

а вообще не понятно что тебе нужно


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
НурболКазбеков
Дата 13.1.2006, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Это я простой пример приводил, а на самом деле у меня первая таблица состоит из около 90000 записей. Я же не могу для 90000 записей указывать индексы массивов.
Мне потом надо будет апдейтать таблицу отправляя значения массивов в таблицу, но это потом.
По-моему надо использовать цикл, но не знаю как
PM MAIL   Вверх
ADAM83
Дата 13.1.2006, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ну что никто не хочет ответить?
PM MAIL   Вверх
Albinos_x
Дата 13.1.2006, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

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



Цитата(НурболКазбеков @ 13.1.2006, 12:44 Найти цитируемый пост)

Это я простой пример приводил, а на самом деле у меня первая таблица состоит из около 90000 записей. Я же не могу для 90000 записей указывать индексы массивов.
Мне потом надо будет апдейтать таблицу отправляя значения массивов в таблицу, но это потом.
По-моему надо использовать цикл, но не знаю как

как понял тебе нужно нечетные одного массива записать в одну переменную, четные в другую, но одной записи другого массива?
сделай так:
Код
...
var chet:byte;
...
for i:=0 to 9000 do
   begin
   chet:=i mod 2;   
   case chet of
      0 : begin
           St[i div 2].V1:= Ved[i].IDVed;
           end; 
      1 : begin
           St[i div 2].V2:= Ved[i].IDVed;
           end; 
      end;
   end;
...




--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

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

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


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


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

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

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


 




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


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

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