Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.08.2009, 17:18   #1
Denmart
 
Регистрация: 12.08.2009
Сообщений: 6
Радость Связь двух таблиц

Есть две таблицы Names (Id, Name) и Values (Id, Name_id, Values). Вопрос:"Как можно вывести таблицу Values так, что бы всместо значения поля Name_id выводилось значение с Name таблицы Names где Id=Name_id" ???

-------------
БД - Paradox 7

Еще один вопросик: Как таблицу Names закинуть в массив в котором номер элемента массива был бы Id. например:
array[id]='name';

Последний раз редактировалось Stilet; 17.08.2009 в 08:18.
Denmart вне форума Ответить с цитированием
Старый 14.08.2009, 18:00   #2
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Цитата:
Сообщение от Denmart Посмотреть сообщение
Есть две таблицы Names (Id, Name) и Values (Id, Name_id, Values). Вопрос:"Как можно вывести таблицу Values так, что бы всместо значения поля Name_id выводилось значение с Name таблицы Names где Id=Name_id" ???

-------------
БД - Paradox 7
Я бы сделал SQL запросом:
Код:
SELECT v.ID, n.Name, v.Values
FROM Names n INNER JOIN Values v ON (n.ID = v.Name_id) ORDER BY v.ID;
Сортировка по ID для правильного заполнения массива

Цитата:
Сообщение от Denmart Посмотреть сообщение
Еще один вопросик: Как таблицу Names закинуть в массив в котором номер элемента массива был бы Id. например:
array[id]='name';
В цикле:
Код:
// Delphi 7
var
  i: Integer;
begin
  for i := 0 to   Table1.RecordCount - 1 do
  begin
    Table1.RecNo := i; // Выбираем строку
    arrName[i] := Table1.Fields.Fields[1].Text; // Получаем содержимое второго поля. Если взять запрос выше то поле будет втроым
  end;
end;
Код:
// Builder 6
  for (int i = 0; i < Table1.RecordCount; i++)
  {
    Table1->RecNo := i; // Выбираем строку
    arrName[i] := Table1->Fields0>Fields[1]->Text; // Получаем содержимое второго поля. Если взять запрос выше то поле будет втроым
  }
P.S. Пользуйтесь правкой.
psycho-coder вне форума Ответить с цитированием
Старый 14.08.2009, 18:06   #3
Denmart
 
Регистрация: 12.08.2009
Сообщений: 6
По умолчанию

Спасибо! Где бы такую справку найти, в которой всё было бы =)
Denmart вне форума Ответить с цитированием
Старый 14.08.2009, 18:13   #4
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Delphi Russian Knowledge Base
psycho-coder вне форума Ответить с цитированием
Старый 14.08.2009, 18:29   #5
Denmart
 
Регистрация: 12.08.2009
Сообщений: 6
По умолчанию

Спасибо. Будем юзать )
Denmart вне форума Ответить с цитированием
Старый 19.08.2009, 10:58   #6
ganiebal
 
Регистрация: 19.08.2009
Сообщений: 6
По умолчанию

я бы сдулал с помощью MAsterSourse. Там просто указываешь Id и Name_Id как поля по которым связываться и все)
ganiebal вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
связь двух таблиц cub Microsoft Office Excel 11 03.08.2009 18:45
Связь 2-х таблиц в Delphi Droid БД в Delphi 8 04.07.2009 21:43
Связь таблиц maximorion БД в Delphi 1 22.05.2009 11:30
связь таблиц в локальной БД IGREK БД в Delphi 3 30.06.2008 19:46
Связь таблиц БД kaa БД в Delphi 5 18.09.2007 18:29