Срочно требуется помощь по Sql

Тема в разделе "Delphi - Базы данных", создана пользователем MADMAN, 19 ноя 2008.

Статус темы:
Закрыта.
  1. MADMAN

    MADMAN Гость

    Вобщем проблемма такая:

    Нужно сделать поиск с критериями по 5ти таблицам и всю инфу выводить в 1ом DBGrid'е но вот понять немогу (толи я топорик толи ленивый как лось) но как мне сделать так чтобы все запросы отображались в 1 Гриде из 5ти SQL запросов или как слепить 5 ADOQuery и запихать в 1 DataSource - сорри если тупо объяснил:

    Вот код запроса по одной таблице (Студент):
    [codebox]procedure TForm5.Button1Click(Sender: TObject);
    var
    str:string;
    begin
    str:='';
    if checkbox1.Checked=true then str:='ФИО like '''+Edit1.Text+'%''';
    if checkbox2.Checked=true then
    begin
    if str<>'' then str:=str+'and [№ Группы]='+Edit2.Text
    else str:='[№ Группы]='+Edit2.Text
    end;
    if checkbox7.Checked=true then
    begin
    if str<>'' then str:=str+'and [№ Студ]='+Edit7.Text
    else str:='[№ Студ]='+edit7.Text
    end;
    ADOQuery1.Active:=false;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('select * from Судент where '+str);
    ADOQuery1.Active:=true;
    end;[/codebox]

    Структура:
    [​IMG]

    Форма:
    [​IMG]
     
  2. MADMAN

    MADMAN Гость

    Ладно "програмисты" может каму всётаки понадобится. Одно што програмисты.

    [codebox]procedure TForm5.Button1Click(Sender: TObject);
    var
    str,z:string;
    begin
    z:=' (Студент.[№ Студ]=Запись.[№ Студ]) and (Студент.[№ Группы]=Группы.[№ Группы]) ';
    str:='';
    if checkbox1.Checked=true then
    str:='and Студент.[ФИО] like '''+Edit1.Text+'%''';
    if checkbox2.Checked=true then
    begin
    if str<>'' then str:=str+' and Группы.[Название] like '''+Edit2.Text+'%'''
    else str:='and Группы.[Название] like '''+Edit2.Text+'%'''
    end;
    if checkbox3.Checked=true then
    begin
    if str<>'' then str:=str+' and Студент.[№ Студ]='+Edit3.Text
    else str:='and Студент.[№ Студ]='+edit3.Text
    end;
    if checkbox4.Checked=true then
    begin
    if str<>'' then str:=str+' and Запись.[№ Аудитории]='+Edit4.Text
    else str:='and Запись.[№ Аудитории]='+edit4.Text
    end;
    if checkbox5.Checked=true then
    begin
    if str<>'' then str:=str+' and day(Запись.[Дата])='+spinedit1.Text+' and month(Запись.[Дата])='+spinEdit2.Text+' and year(Запись.[Дата])='+spinedit3.Text
    else str:='and day(Запись.[Дата])='+spinedit1.Text+' and month(Запись.[Дата])='+spinEdit2.Text+' and year(Запись.[Дата])='+spinedit3.Text
    end;
    if checkbox6.Checked=true then
    begin
    if str<>'' then str:=str+' and Запись.[Пара]='+Edit6.Text
    else str:='and Запись.[Пара]='+Edit6.Text
    end;
    ADOQuery1.Active:=false;
    ADOQuery1.SQL.Clear;
    //ShowMessage(adoquery1.SQL.Text+str);
    ADOQuery1.SQL.Add('select Запись.[Пара],Группы.[Название],Студент.[ФИО],Студент.[№ Студ],Запись.[№ Аудитории],Запись.[Дата],Группы.[Куратор] from Студент, Группы, Запись where' +z+str);
    ADOQuery1.Active:=true;
    end;[/codebox]
     
  3. etc

    etc Гость

    Для програмистов это слишком легко.
     
  4. MADMAN

    MADMAN Гость

    Дак чтож тоды 2 недели никто не мог ответить то??? Отвечаете тока после того как уже ничё не надо, чисто "для нас это легко фи - из за этого не отвечаем". Да ну вас - програмёры млин.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей