Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Содержимое ComboBox записать в таблицу


Автор: dilik 17.2.2007, 00:08
ComboBox содержит всего 2 поля. Как сделать так, чтобы при выборе одного из них, в таблицу (к примеру "klient") в конкретное поле (например "pol") записалось "M" или "Ж"?  smile 

Автор: Insert 17.2.2007, 01:52
какие БД используешь?

Автор: Savek 17.2.2007, 10:13
В обработчике Combobox1.OnClick вносить соотв. изменения в таблицу. Как именно зависит от компонентов, которыми пользуешься для доступа к таблице

Автор: dilik 17.2.2007, 13:45
Цитата

какие БД используешь?



Paradox 7 через Database Desktop

Добавлено @ 13:51 
Цитата

В обработчике Combobox1.OnClick вносить соотв. изменения в таблицу. Как именно зависит от компонентов, которыми пользуешься для доступа к таблице


TTable, DataSource1 - наверно эти основные. Если нет, допиши какие еще можно.

DBGrid1 и DBNavigator1 наверное здесь использовать не нужно, ведь я просто записываю в таблицу, мне не обязательно это выводить

Автор: Savek 17.2.2007, 16:56
Код

procedure TForm1.ComboBox1OnClick(sender : TObject);
begin
Table1.Edit;
Table1.FieldByname('Pol').AsString:=ComboBox1.Text;
Table1.Post;

Это при условии что таблица находится в открытом состоянии и курсор установлен на нужную строку. 

Автор: dilik 17.2.2007, 21:24
Цитата(Savek @ 17.2.2007,  16:56)
Код

procedure TForm1.ComboBox1OnClick(sender : TObject);
begin
Table1.Edit;
Table1.FieldByname('Pol').AsString:=ComboBox1.Text;
Table1.Post;

Это при условии что таблица находится в открытом состоянии и курсор установлен на нужную строку.

Я узнал что у меня есть огромная семья.... и метод TQuery.
Как я понимаю, он лучше TTable. Но я единственного понять не могу. Когда при TTable в поле "TableName" я указывал (писал вручную) Data\klient (у меня база klient.db находится в папке Data в папке проекта) и ставил Active=True всё работало, причем поле "DatabaseName" я оставлял пустым. А вот при TQuery поля "TableName" нет, и когда я пишу в поле "DatabaseName" Data\klient и ставлю Active=True прога ругается. Я понимаю, что делаю что-то не так. Подскажите, как заполнять эти поля при TQuery? И как соответственно изменится код моего вопроса №1.

Автор: Vas 18.2.2007, 09:33
Цитата(dilik @  17.2.2007,  21:24 Найти цитируемый пост)
Я узнал что у меня есть огромная семья.... и метод TQuery.
Как я понимаю, он лучше TTable. Но я единственного понять не могу. Когда при TTable в поле "TableName" я указывал (писал вручную) Data\klient (у меня база klient.db находится в папке Data в папке проекта) и ставил Active=True всё работало, причем поле "DatabaseName" я оставлял пустым. А вот при TQuery поля "TableName" нет, и когда я пишу в поле "DatabaseName" Data\klient и ставлю Active=True прога ругается. Я понимаю, что делаю что-то не так. Подскажите, как заполнять эти поля при TQuery? И как соответственно изменится код моего вопроса №1. 

Не забудь еще заполнить свойство SQL у TQuery, например так:
Код

select * from klient

А уж потом ставь Active=True.

Автор: dilik 18.2.2007, 09:44
Цитата

Не забудь еще заполнить свойство SQL у TQuery, например так:
А уж потом ставь Active=True.


Я сделал так: DatabaseName я не заполнял, а в SQL я записал:
Код

Select Fio from Data\klient

Если написать так, Active можно поставить в True, если написать без Data\ то будет ошибка - Таблица не найдена и т.п.

А как передать выполненный результат уже на форму. Чтобы результат выводился через DbComboBox?

Автор: Savek 19.2.2007, 12:17
Цитата(dilik @  18.2.2007,  09:44 Найти цитируемый пост)
А как передать выполненный результат уже на форму. Чтобы результат выводился через DbComboBox?


Подключи DBComboBox к соответствующему DataSorce и всё.
А если нужно результат в  DBComboBox.Items тогда заполняй ручками в цикле


Автор: dilik 20.2.2007, 21:27
а что лучше использовать DBComboBox или DBLookupComboBox. Последний кажется лучше тем, что там не надо писать код и sql-запрос. но у меня не получается насроить лист и дата сорс. может, у кого-то есть простенькая прога (коды), работающая с собственной базой, так чтобы и DBLookupComboBox использовался?

Автор: Digo 3.3.2007, 13:57
ИМХО DBLookupComboBox лучше т.к. к DataSorce его можно привязать без лишних хлопот...
в инспекторе объектов для него заполняешь в пункте Database поля ListSourse(выберешь твой источник) KeyField - ключевое поле и ListField - собственно то что нужно отображать в DBLookupComboBox. Обрати внимание что в этом случае не надо заполнять DataField и DataSource!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)