Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > проблема с присвоением значения ячейки


Автор: ZimFFa 19.6.2011, 09:56
Здравствуйте...
 Подскажите пожалуйста..

 Вот у меня код проги:
Код

 procedure TFComboBox.DBLookupComboBox1Click(S ender: TObject);
 var index: Integer;
 begin
 ADOQuery1.SQL.Text := 'SELECT SNomerStadii, SNazwanieStadii FROM ISStadija, Stadii WHERE ISNomerIS = ' + ADOQuery2.FieldByName('INomerIS').A sString;
 ADOQuery1.Open;
 begin
 index := ???? ;
 if index <> index + 1 then ??? := True
 else ??? := False;
 end;
 end;


 Суть в том, что в DBLookupComboBox1 выбирается ИС, а в BDGrit выдаются соответствующие ИС Стадии...

 Стадии у меня выдаются, только они выдаются столько раз, столько их общее кольчество у ИС. Например: У Производственной ИС 4 стадии - в Грид выдаются эти 4 стадии, но каждая Стадия повторяется 4 раза. 

 Поэтому нужно сделать мне проверку: Если Стадия уже есть в табл, то её не выдавать...

 Значению index := (значение ячейки)... как это написать? smile

 Как-то так... Надеюсь, понятно объяснила 

Автор: ZimFFa 19.6.2011, 10:13
Посоветовали мне DISTINCT 

 Вот что получилдось:
Код

 procedure TFComboBox.DBLookupComboBox1Click(S ender: TObject);
 begin
 ADOQuery1.SQL.Text := 'SELECT DISTINCT SNomerStadii, SNazwanieStadii FROM ISStadija, Stadii WHERE ISNomerIS = ' + ADOQuery2.FieldByName('INomerIS').A sString;
 ADOQuery1.Open;
 end;


 Теперь мне для всех ИС выдаются ВСЕ Стадии, корве есть в БД 

 Например: У Производственной ИС 4 стадии - в Грид выдаются 8 - это общее кольчество Стадий в Базе Данных...

Автор: Keeper89 19.6.2011, 19:13
Мне кажется Вы что-то не то выбираете или БД спроектирована плохо

Автор: ZimFFa 19.6.2011, 19:26
Да не знаю в чём проблема... не могу разобраться smile

пишу: 
Код

procedure TFComboBox.DBLookupComboBox1Click(Sender: TObject);
begin
ADOQuery1.SQL.Text := 'SELECT SNomerStadii, SNazwanieStadii FROM ISStadija, Stadii WHERE ISNomerIS = '
+ ADOQuery2.FieldByName('INomerIS').AsString;
ADOQuery1.Open;
end;


а мне выдаёт:

M
Rrader
Подсвечивайте листинги с кодом (кнопка "Код" вверху)

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