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

  • Автор темы MADMAN
  • Дата начала
Статус
Закрыто для дальнейших ответов.
M

MADMAN

Гость
#1
Вобщем проблемма такая:

Нужно сделать поиск с критериями по 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]

Структура:


Форма:
 
M

MADMAN

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

[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]
 
M

MADMAN

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