Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.11.2009, 00:26
device™ device™ вне форума
Прохожий
 
Регистрация: 22.11.2009
Сообщения: 4
Репутация: 10
По умолчанию

Вобщем сделал я простенький пример:
Первая выборка по производителю, вторая выборка по типу, третяя выборка по цвету.

Есть 3 производителя ручек. Каждый производит 2 типа (гелевые и капилярные). В каждом типе производится по 3 цвета. Итого в БД получается 18 ручек.

Что происходит когда я запускаю выборку:

Допустим выбираю производителя. Начинаю выбирать тип ручки, и у меня как бы производитель не учитывается, показывает все ручки одного типа, без учета производителя, с цветом тоже самое - без учета производителя и типа.

Подскажите какой момент я недоработал?

PHP код:
procedure TForm1.FormCreate(SenderTObject);
  var 
Str1Str2Str3String;
  
begin

  Query2
.SQL.Clear;
  
Query2.SQL.Add('SELECT * FROM Pros');
  
Query2.Open;
  
ComboBox1.Clear;
  while 
not Query2.Eof do
    
begin
    Str1
:=Query2.FieldByName('ProizvodName').AsString;
    
ComboBox1.Items.Add(Str1);
    
Query2.Next;
    
end;
  
ComboBox1.Items.Add('Все производители');
  
ComboBox1.ItemIndex:=ComboBox1.Items.Count-1;

    
begin
    Query3
.SQL.Clear;
    
Query3.SQL.Add('SELECT * FROM Types');
    
Query3.Open;
    
ComboBox2.Clear;
    while 
not Query3.Eof do
      
begin
      Str2
:=Query3.FieldByName('TypeName').AsString;
      
ComboBox2.Items.Add(Str2);
      
Query3.Next;
      
end;
    
ComboBox2.Items.Add('Все типы');
    
ComboBox2.ItemIndex:=ComboBox2.Items.Count-1;

      
begin
      Query4
.SQL.Clear;
      
Query4.SQL.Add('SELECT * FROM Colors');
      
Query4.Open;
      
ComboBox3.Clear;
      while 
not Query4.Eof do
        
begin
        Str3
:=Query4.FieldByName('ColorName').AsString;
        
ComboBox3.Items.Add(Str3);
        
Query4.Next;
        
end;
      
ComboBox3.Items.Add('Все цвета');
      
ComboBox3.ItemIndex:=ComboBox3.Items.Count-1;
      
end;
    
end;
  
end;

  
procedure TForm1.ComboBox1Change(SenderTObject);
    var 
CurID1Integer;

    
begin
    Query1
.Close;
    
Query1.SQL.Clear;
    
Query1.SQL.Add('SELECT * FROM Ruchkas ');
    if 
ComboBox1.ItemIndex ComboBox1.Items.Count-1 then

      begin
      Query1
.SQL.Add('WHERE ProizvodID=:pProizvodID');
      
Query2.Locate('ProizvodName',ComboBox1.Text,[ ]);
      
CurID1:=Query2.FieldByName('ProizvodID').AsInteger;
      
Query1.Params[0].AsInteger:=CurID1;
      
Query1.ExecSQL
      
      end
;
    
Query1.Open;
  
end;

  
procedure TForm1.ComboBox2Change(SenderTObject);
    var 
CurID2Integer;
    
begin
    Query1
.Close;
    
Query1.SQL.Clear;
    
Query1.SQL.Add('SELECT * FROM Ruchkas ');
    if 
ComboBox2.ItemIndex ComboBox2.Items.Count-1 then

      begin
      Query1
.SQL.Add('WHERE TypeID=:pTypeID');
      
Query3.Locate('TypeName',ComboBox2.Text,[ ]);
      
CurID2:=Query3.FieldByName('TypeID').AsInteger;
      
Query1.Params[0].AsInteger:=CurID2;
      
end;
    
Query1.Open;
  
end;

  
procedure TForm1.ComboBox3Change(SenderTObject);
    var 
CurID3Integer;
    
begin
    Query1
.Close;
    
Query1.SQL.Clear;
    
Query1.SQL.Add('SELECT * FROM Ruchkas ');
    if 
ComboBox3.ItemIndex ComboBox3.Items.Count-1 then

      begin
      Query1
.SQL.Add('WHERE ColorID=:pColorID');
      
Query4.Locate('ColorName',ComboBox3.Text,[ ]);
      
CurID3:=Query4.FieldByName('ColorID').AsInteger;
      
Query1.Params[0].AsInteger:=CurID3;
      
end;
    
Query1.Open;
  
end;
end

Последний раз редактировалось device™, 24.11.2009 в 16:37.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:47.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025