|
#1
|
|||
|
|||
Связь комбобоксов
Добрый день!Помогите пожалуйста разобраться
Суть идеи: Есть база данных(ms sql server 2005), делаю приложение для учета картриджей итп. использую компоненты Ado (Adoconnection,AdostoredProc,adotable,datasourse), отображаю в DBGridе,это основа,попробовал добавить данные в базу через Edit, все ок,т.е. так: например:ADOStoredProc27. Parameters.ParamValues['@model'] := Edit45.Text;ADOStoredProc27,вызавает хранимую процедуру в базе для добавления данных... В общем проблема заключается в следующем: 1) Хочу сделать не через edit, а выбирать данные из базы используя Dbcombobox,combobox или же через dblookupcombobox, пробовал через Dbcombobox, в обработчике прописываю Код:
procedure TForm1.DBComboBox1Enter(Sender: TObject); begin with ADOQuery5 do try DBComboBox1.Items.BeginUpdate; DBComboBox1.Items.Clear; SQL.Text := 'SELECT DISTINCT [model] FROM [base] where [model] is not null'; //выбираю столбец model без повторения и без null Open; while not Eof do begin DBComboBox1.Items.Add(FieldByName('model').AsString);//соответственно заполняю items Next; end; Close finally DBComboBox1.Items.EndUpdate; end; end; 2)База состоит из полей: model,name_cart,number,serial_number,shtrix_code,s tatus,uchet,raspolozhenie Хочу сделать связь 3-х комбобоксов по полям :model,name_cart,number т.е. я в первом выбираю hp3052,во втором мне предлагал только 12А, а number список номеров,как-то так.... |
#2
|
||||
|
||||
По первому вопросу так и не догнал, в чем проблема. И честно говоря не понял, зачем вы вообще для своей задачи используете DBComboBox. Намного проще воспользоваться DBLookupComboBox.
Что касается второго вопроса, то либо делаете связку таблиц мастер-детайл, либо делаете одну таблицу с полями типа (Предок-Потомок) Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |