Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > связать DBEdit-ы таблицы, с гридом из запроса


Автор: malayka 8.5.2010, 20:21
Добрый вечер)
 есть грид в котором список из запроса на выборку:
Код

SELECT Студент.Фамилия, Студент.Имя, Студент.Отчество, Группы.Группа, Группы.Курс, Специальности.Специальность, Отделения.Отделение
FROM (Отделения INNER JOIN Специальности ON Отделения.КодОтделения = Специальности.КодОтделения) INNER JOIN (Группы INNER JOIN Студент ON Группы.КодГруппы = Студент.КодГруппы) ON Специальности.КодСпециальности = Группы.КодСпециальности
ORDER BY Студент.Фамилия, Группы.Группа, Специальности.Специальность, Отделения.Отделение;

каждую таблицу я отобразил в ADOTable чтобы вносить изменения из dbedit -ов:
Код

unit Unit2;
interface
uses
  SysUtils, Classes, DB, ADODB;
type
  TDataModule2 = class(TDataModule)
    ADOConnection1: TADOConnection;
    ADODataSet1: TADODataSet;
    DataSource1: TDataSource;
    Std: TADOTable;
    SourceStd: TDataSource;
    Otd: TADOTable;
    Spc: TADOTable;
    Gr: TADOTable;
    SourceGr: TDataSource;
    SourceSpc: TDataSource;
    SourceOtd: TDataSource;
    ADODataSet1DSDesigner: TWideStringField;
    ADODataSet1DSDesigner2: TWideStringField;
    ADODataSet1DSDesigner3: TWideStringField;
    ADODataSet1DSDesigner4: TWideStringField;
    ADODataSet1DSDesigner5: TIntegerField;
    ADODataSet1DSDesigner6: TWideStringField;
    ADODataSet1DSDesigner7: TWideStringField;
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  DataModule2: TDataModule2;
implementation
{$R *.dfm}
end.


по задумке выбирая в списке нужного человека, должна отобразиться форма(просмотр, редактирование, добавление, удаление) с эдитами в котором инфа именно про него. Но на деле покачто ничего правильного, едиты показывают данные на первую запись игнорируя выбор. Как сделать чтобы все заробило правильно? 
предполагаю что нужно сравнивать первичные ключи, но каким образом вообще непойму


Автор: malayka 9.5.2010, 14:08
в общем запрос преобразовал в след вид:
Код

SELECT Студент.Фамилия, Студент.Имя, Студент.Отчество, Группы.Группа, Группы.Курс, Специальности.Специальность, Отделения.Отделение, Студент.КодСтудента
FROM (Отделения INNER JOIN Специальности ON Отделения.КодОтделения=Специальности.КодОтделения) INNER JOIN (Группы INNER JOIN Студент ON Группы.КодГруппы=Студент.КодГруппы) ON Специальности.КодСпециальности=Группы.КодСпециальности
WHERE Студент.КодСтудента=:КодСтудента
ORDER BY Студент.Фамилия, Группы.Группа, Специальности.Специальность, Отделения.Отделение;

 после в датасоурсе кьюэри указывают на соурс таблицы студентов

и вроде робит как я хочу, НО в списке отображается только одна запись!! что я не так делаю???

Автор: malayka 10.5.2010, 00:40
всем спасибо очень помогли.

Автор: malayka 10.5.2010, 21:27
в общем вопрос решен. просто через мастерсоурс таблицы нужно было связать кьюэри.. эх вы, мог бы кто и подсказать, 2 сутки ушли на его решение

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)