Новые сообщения · Правила  
  • Страница 1 из 1
  • 1
Модератор форума: Berestovskiy  
Работа с базами данных
Здравствуйте. Есть база данных в аксесе с полями "фамилия" "имя" "отчество" и "Ключ №", а
На форме дельфи7 имеются компоненты: дбкомбобокс, дбгрид. Вопрос:
1) Как сделать так чтобы компонент ДБКОМБОБОКС отражал все по заданному полю в указанной базе данных.
2) В дбкомбобокс есть номера ключей взятые из базы данных, как сделать так чтобы при выборе значения в дб комбобокс в таблицу дбгрид добавлялась только строка с данными соответствующие этому ключу.

Если есть идей как это сделать другим путем буду рад узнать , спасибо!

1 | Автор: KOTY21 | 2011-02-18, 11:20   |  Репутация: [ + 0 ]
эм... а запросы на что? в любой книге по Делфи есть раздел о БД и работы с ними, в том числе с помощью SQL.
по поводу компонент - DB Aware компоненты просты для использования их в качестве визуализаторов полей базы, но с ними неудобно работать и настраивать, и если с DBGrid проще всего отобразить таблицу то юзать dbComboBox нет особого смысла, так как его содержание будет меняться в зависимости от запроса отправленного в dataset.
Для этого проще и понятнее взять обычный ComboBox и заполнить его коллекцию Items нужными данными из таблицы:
делаем запрос (для запроса например используем TADOQuery)
Code
myQuery.SQL.Text:="SELECT [имя_нужного_поля] FROM [имя_таблицы]";

а потом используя FieldByName нашей квери записывам все в combobox:

Code
myQuery.First;
while not myQuery.Eof do
begin
combobox1.Items.add(myQuery.FieldByName("имя_нужного_поля").AsString);
myQuery.Next;
end;

могут ошибки в синтаксисе немного, так как прям тут писал и немного забыл обращение к полю.

а потом при выборе элемента в комбобксе, на ивент о нажатии на него пишешь запрос в базу в котором выбираешь нужные поля и добавляешь блок WHERE

Code
"SELECT * FROM myTable WHERE myFiled="+combobox1.Items[combobox1.ItemIndex];

в зависимости от типа myField может надо будет добавить кавычки. и все - если бы ты юзал еще и DBComBobox и один dataset для базы то при запросе исзменилась бы инфа и в твоем DBComBobox


If you can't make it GOOD make it LOOK GOOD. B.Gates
2 | Автор: DoVe | 2011-02-18, 17:31 | Изменено: DoVe - Пт, 2011-02-18, 17:31   |  Репутация: [ + 48 ]
  • Страница 1 из 1
  • 1
Поиск: