Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.04;
Скачать: CL | DM;

Вниз

DBComboBox   Найти похожие ветки 

 
Sapos ©   (2007-02-15 09:18) [0]

Подскажите, плиз, как наполнять компонент DBComboBox записями из таблицы? Так же в дальнейшем нужно вытаскивать запись из БД в строковую переменную -как это реалезовать?

Спасибо!


 
Sergey13 ©   (2007-02-15 09:34) [1]

1. Настроить свойства компонента
2. Запись в строку? Это как? Значение поля в строку наверное? FieldByName.AsString


 
Клара   (2007-02-15 09:46) [2]

Поиск по выбору с использованием компонента ComboBox.
1. Выставьте на форму компонент ComboBox из страницы Standart.
- в свойстве Items  перечислите в столбик возможные виды поиска;
- свойство ItemIndex  установите в 0.
2. Рядом с ComboBox выставьте компонент Edit из страницы Standart.
3. Выделите Edit и перейдите на вкладку Events.
4. Двойным щелчком на событии OnChange, создайте процедуру обработки:
procedure TForm6.Edit1Change(Sender: TObject);
begin
case ComboBox1.ItemIndex of
0: table1.Locate("Kodpodpiski",edit1.Text,[loCaseInsensitive,loPartialKey]);
1: table1.Locate("Index",edit1.Text,[loCaseInsensitive,loPartialKey]);
end;
end;


 
Sapos ©   (2007-02-15 09:48) [3]

Какие именно свойства? я соединяю компонент с датасоурс но при запуске программы в комбобоксе отображается только первая запись, если список разворачивать, то там пусто. Короче получается, что он тупо отображает текущую запись...


 
Sapos ©   (2007-02-15 10:00) [4]


> Поиск по выбору с использованием компонента ComboBox.
> 1. Выставьте на форму компонент ComboBox из страницы Standart.
>
> - в свойстве Items  перечислите в столбик возможные виды
> поиска;
> - свойство ItemIndex  установите в 0.
> 2. Рядом с ComboBox выставьте компонент Edit из страницы
> Standart.
> 3. Выделите Edit и перейдите на вкладку Events.
> 4. Двойным щелчком на событии OnChange, создайте процедуру
> обработки:
> procedure TForm6.Edit1Change(Sender: TObject);
> begin
> case ComboBox1.ItemIndex of
> 0: table1.Locate("Kodpodpiski",edit1.Text,[loCaseInsensitive,
> loPartialKey]);
> 1: table1.Locate("Index",edit1.Text,[loCaseInsensitive,loPartialKey]);
>
> end;
> end;

Мне не поиск нужен, мне нужно автоматом наполнять DBComboBox из файла базы данных, при попытке воспользоваться методом LoadFromFile добавляет только последнюю запись...


 
ЮЮ ©   (2007-02-15 10:11) [5]

TDBComboBox - обычный TDBEdit. Поэтому и показывает значение в текущей строке. Его отличие, что вместо тупого вколачивания текста в символтное поле, можно подготовить выпадающий список и выбирать из него. Эта задача ложится на программиста, сам компонент этого не поддерживает.

Как? Например, выполнить запрос SELECT DISTINCT <текстовое поле> FROM <таблица> и получить список уже имеющихся значений, и заполнить Items. Теперь пользователь сможет не только вводит непосредственно в поле ввода, но и выбирать уже имеющиеся значения


 
Sergey13 ©   (2007-02-15 10:24) [6]

> [4] Sapos ©   (15.02.07 10:00)

Может тебе ДБЛукапКомбобокс нужен?


 
ЮЮ ©   (2007-02-15 10:33) [7]


> Может тебе ДБЛукапКомбобокс нужен?

Там свойств сильно много :(  Лучше бы сказал чего ему нужно получить от этого комбобокса: какое поле редактирует, зачем нужен список, почему не не напрямую, и т.д. и т.п


 
Sapos ©   (2007-02-15 11:31) [8]


> Там свойств сильно много :(  Лучше бы сказал чего ему нужно
> получить от этого комбобокса: какое поле редактирует, зачем
> нужен список, почему не не напрямую, и т.д. и т.п
>


Короче! Мне в принципе не важно, какой комбо бокс использовать (DB или обычный). Мне нужно наполнять его из записями из таблицы с одним полем, записи в этой таблице могут редактироваться (удаляться и добавляться). Для чего? Объясняю: Допустим комбобокс уже наполнен какими-нибудь элементами, я выбираю нужный, нажимаю кнопку и открывается другая таблица (более оширная) с более подробной информацией. Т.е. конкретная запись в простой таблице (с одним полем) соответствует имени более расширенной таблице. Соответственно для открытия большой таблицы нужно вытаскивать текущее значение поля и передавать его в другой Table и присваевать его свойству TableName.


 
Desdechado ©   (2007-02-15 11:44) [9]

> но при запуске программы в комбобоксе отображается только первая запись
Просто сделай Last;First; на наборе данных, куда нацелен комбо.


 
ЮЮ ©   (2007-02-15 11:55) [10]

Sapos ©   (15.02.07 11:31) [8]

Тогда это не TDBComboBox, а TDBLookupCombobox
где ListSource указывает на таблицу "таблиц", DataSource - ПУСТОЙ, а значение выбранной строки - в TDBLookupCombobox.KeyValue


 
Sapos ©   (2007-02-15 13:51) [11]


> Тогда это не TDBComboBox, а TDBLookupCombobox
> где ListSource указывает на таблицу "таблиц", DataSource
> - ПУСТОЙ, а значение выбранной строки - в TDBLookupCombobox.
> KeyValue

Спасибо! Только теперь непонятно как DBLookupComboBox.keyValue превратить в строку, потому как это свойство имеет тип Variant?


 
Astronom ©   (2007-02-15 13:59) [12]

Просто присвой какой-нибудь строковой переменной  получившееся значение. Вроде бы Variant должен корректно преобразоваться.


 
Sapos ©   (2007-02-15 14:04) [13]


> Просто присвой какой-нибудь строковой переменной  получившееся
> значение. Вроде бы Variant должен корректно преобразоваться.
>

Пишет: Could not convert variant into type String. Чё делать?


 
Плохиш ©   (2007-02-15 16:18) [14]


> Sapos ©   (15.02.07 14:04) [13]
> Пишет: Could not convert variant into type String. Чё делать?

Надо воспользоваться отладчикам и посмотреть какую же фигню ты туда умудрился запихнуть...


 
ЮЮ ©   (2007-02-16 03:02) [15]


> потому как это свойство имеет тип Variant?


Если запрос правильный и компонент правильно настроен, то тот VarType того Variant-а должен быть varString.


 
Saposo   (2007-02-16 10:42) [16]

Заработало, писал не втом обработчике событий.



Страницы: 1 вся ветка

Текущий архив: 2007.03.04;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.063 c
2-1171535472
dzhagr1
2007-02-15 13:31
2007.03.04
Связь таблиц paradox7 в database desktop


11-1149836904
YDS
2006-06-09 11:08
2007.03.04
Запуск приложения, хранящегося в ресурсах средствами API


2-1171291224
Sapos
2007-02-12 17:40
2007.03.04
Сохранение в файл


2-1171269260
petvv
2007-02-12 11:34
2007.03.04
Помогите разобраться с UpdateSQL


15-1171050097
ArtemESC
2007-02-09 22:41
2007.03.04
Как сканировать книги в djvu???