Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.03.04;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.04 c
2-1171340353
ПытливыйУМ
2007-02-13 07:19
2007.03.04
как откампелить если есть только dcu


15-1170668688
TUser
2007-02-05 12:44
2007.03.04
Мда уж ...


2-1171575343
dtitov
2007-02-16 00:35
2007.03.04
Копирование файлов...


1-1168441791
novice007
2007-01-10 18:09
2007.03.04
использование Lame_enc.dll


9-1145028173
grisme
2006-04-14 19:22
2007.03.04
Небо на OpenGL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский