Сообщение Связь компонента Dblookupcombobox с Dbedit при работе с БД

Тема в разделе "Delphi - Компоненты", создана пользователем sislexa, 27 окт 2010.

  1. sislexa

    sislexa Гость

    В программе имеются компоненты DbLookupCombobox и DBEdit работающие с одной базой данных .DbLookupCombobox отображает список товаров а DBEdit стоимость выбранного товара.Вроде всё работает но у меня возникла проблема следующего характера цена во всех DBEditах отображается только последнего товара который я выбрал в DbLookupCombobox.Допустим у меня 5 компонентов DbLookupCombobox и соответственно 5 DBEdit во всех DbLookupCombobox выбраны разные товары с разной стоимостью а вот во всех DBEditах будет отображаться только стоимость последнего товара . Подскажите плиз как решить эту проблему .Заранее благодарен ответившим!
     
  2. Гость

    Доброго дня sislexa!
    Компонент TDBEdit отображает информацию из текущей активной записи. Поэтому во всех Edita'x Вы видите одну и туже информацию из одной и той же записи. Выход из ситуации можно найти, но нужно определиться с поставленной задачей и методами её реализации, т.е.
    1. Нужно ли будет редактировать значения цен в компонентах TDBEdit или это нужно только для просмотра?
    2. Используете ли Вы SQL и через какого провайдера БД работаете (BDE, ADO, MySQL и пр.)?

    Первое что мне пришло в голову - это
    - При выборе товара в компоненте TDBLookupComboBox выполнять поиск цены соответствующего товара (к примеру SQL запросом) и выводить её в Edit.
    Второе -
    - Породить потомков от TDBLookupComboBox и TDBEdit. Первый должен сообщать второму о номере записи в БД откуда второй должен брать информацию.

    Вообщем надо конкретней определиться с поставленной задачей.
    ====================================================
    С уважением Александр.
     
  3. sislexa

    sislexa Гость

    а как можно организовать SQL запрос на поиск соответствующей цены?
     
  4. Гость

    В событии OnSelect (точно не помню как называется) компонента Lookup пропиши код:
    var
    qr:TQuery
    begin
    qr:=TQuery.Create;
    qr.SQL:='Select ЦЕНА from ТВОЯ_ТАБЛИЦА where ТОВАР='+QuotedString(DBLookupComboBox.Text);
    qr.Open;
    Edit.Text:=qr.Fields.Field[0].AsString;
    qr.Free;
    end;

    Пояснения:
    когда ты выбираеш значение в компоненте DBLookupComboBox создается компонент TQuery который и находит цену выбранного товара, а ты эту цену присваеваеш компоненту Edit

    =================================
    в коде мог ошибится, т.к. писал прям в форуме (под рукой нет дельфи : )

    с уважением Александр
     
Загрузка...

Поделиться этой страницей