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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.05.2010, 18:34
kirill.psl kirill.psl вне форума
Прохожий
 
Регистрация: 28.05.2010
Адрес: Ufa
Сообщения: 10
Репутация: 10
По умолчанию Банальная проблема DBComboBox

Всем доброго времени суток, в делфях работаю очень редко и вот в данный момент прям не как без них, в общем делаю курсач по БД и нужно написать программку и вот не как не могу заставить правильно работать DBComboBox, база у меня на MSSQL подключаю через ADOConnection, ADOQuery, DataSource ну и на табличку к примеру вешаю (DBGrid), но вот не как не могу правильно подключить (или в цикле проблема) DBComboBoх в общем подключаю так что у меня выводится только первый элемент из базы, как я понял нужно написать цикл (гугление сказало тоже самое)

Вот что у меня вышло :
Код:
procedure TForm1.DBComboBox1Change(Sender: TObject);
begin
ADOQueryCOMBOProduct.First;
DBComboBox1.Items.Clear;  // чистим
While not ADOQueryCOMBOProduct.EOF do
   begin
       DBComboBox1.Items.Add(ADOQueryCOMBOProduct.FieldByName('name_product').AsString);
   ADOQueryCOMBOProduct.Next; // го на следующего
end;
end;
Admin: Пользуемся тегами для оформления кода!

поправьте что не так плиз ребят, уж очень срочно надо! заранее спасибо

Последний раз редактировалось kirill.psl, 28.05.2010 в 18:38.
Ответить с цитированием
  #2  
Старый 28.05.2010, 18:39
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Намного проще было-бы если бы вы воспользовались DBLookupComboBox. Там заполнение списка идет автоматом.
А вот почему в вашем варианте только первая запись выводится, я затрудняюсь сказать. Написано все правильно, должно выводить все.
Единственное предположение, это что-то у вас либо с запросом, ограничение по условию или по кол-ву возвращаемых данных или же ADOQueryCOMBOProduct завязан на другую таблицу/запрос.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 28.05.2010 в 18:43.
Ответить с цитированием
  #3  
Старый 28.05.2010, 18:43
kirill.psl kirill.psl вне форума
Прохожий
 
Регистрация: 28.05.2010
Адрес: Ufa
Сообщения: 10
Репутация: 10
По умолчанию

так, а поподробней, как с ним (DBLookupComboBox) работать не подскажете?

П.с. только вот решил его попробовать и тут Вы сразу отвечаете в тему =)
Ответить с цитированием
  #4  
Старый 28.05.2010, 19:14
kirill.psl kirill.psl вне форума
Прохожий
 
Регистрация: 28.05.2010
Адрес: Ufa
Сообщения: 10
Репутация: 10
По умолчанию

Организовал через DBLookupComboBox

Нужно указать ListSource, ListField и KeyField. DataSource оставить пустым. И все заработало, а как выставить первоначально НЕ ПУСТОЕ значение? А к примеру текст написать "Выберите продукт" к примеру?
Ответить с цитированием
  #5  
Старый 28.05.2010, 19:19
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Что-бы добавить что от себя в список, можно для списка сделать запрос такого вида:
Код:
select -1,'<Выберите значение>'
union
select id,context from mytable
order by id
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #6  
Старый 28.05.2010, 20:33
kirill.psl kirill.psl вне форума
Прохожий
 
Регистрация: 28.05.2010
Адрес: Ufa
Сообщения: 10
Репутация: 10
По умолчанию

у меня база mssql, как ввести из DBComboBox1 в нее? у меня щас вот такого рода код на кнопке стоит :

Код:
procedure TAddproduct.Button3Click(Sender: TObject);
begin
// Закрыть запрос
Form1.QueryDynamic.Close;
// Очистить массив строк для размещения
// текста запроса
Form1.QueryDynamic.SQL.Clear;
// Сформировать строку с текстом запроса
sql:= 'insert into product (id_category, id_proizvoditel,name_product) values     (DBLookupComboBox1.Text, DBLookupComboBox2.Text, '''+ Edit1.Text +''');';
// Вывести текст запроса на экран
application.MessageBox(PChar(sql), 'Текст запроса',MB_OK);
// Добавить стоку с текстом запроса
Form1.QueryDynamic.SQL.Add(sql);
try
// Выполнить запрос
Form1.QueryDynamic.Open;
// Обработать возможные ошибки
// при выполнении запроса
except
application.MessageBox( 'Не могу выполнить запрос', 'Ошибка',MB_OK);
end;
end;

DBLookupComboBox2 как Edit1 с добавоением .Text не хочет работать

у меня там сделанно так : ListField (то что показывает в списке - "Продукт") и KeyField(id того что показывает в списке "ID_Продукт") нужно именно KeyField ввести мне...
как сделать не знаю...
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter