Показать сообщение отдельно
  #2  
Старый 23.04.2009, 18:07
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

1. Название предмета в запросе надо заключать в кавычки.
2. И вообще не так надо делать. Варианта 2:
2.1. Используем обычный комбобокс. Тогда при его заполнении используем метод AddObject, где в первом параметре указываем собственно название, а во втором приведенный к TObject ID записи:
Код:
qPredmety.Open;
While Not qPredmety.EOF Do
  Begin
    cbPredmety.Items.AddObject(qPredmety.FieldByName('Название').AsString,TObject(qPredmety.FieldByName('ID_Predmet').AsInteger));
    qPredmety.Next;
  End;
  qPredmety.Close;

Запрос в qPredmety:
SELECT * FROM table_predmety
Соответсвенно, для получения соответствующего ID надо:
- поставить стиль в csDropDownList
- получить ID выбранного предмета через вызов Integer(cbPredmety.Items.Objects[cbPredmety.ItemIndex])
2.2. Использовать TDBLookupComboBox.
3. И вообще, не используй русские названия в БД. Это, конечно, рекомендация, но не все СУБД нормально их воспринимают. Потом придется переучиваться.
Ответить с цитированием