• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

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]

Структура:
link removed

Форма:
link removed
 
M

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]
 
E

etc

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

MADMAN

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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!