![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получение id записи
Kostafey © (2007-01-28 03:46:00)Окажите пожалуйста содействие в следующем вопросе.
В БД (СУБД MS SQL Server) имеется ряд таблиц вида:
id name
5 Пожар
6 Наводнение
7 Снежный буран
8 null
Я хочу получить в ComboBox значения name + еще одно (например, Все несчастья) и убрать все null, т.е.
Все несчастья
Пожар
Наводнение
Снежный буран
Для этого я использовал обычный ComboBox и в него последовательным перебором добавлял все значения.
А потом мне нужно по выбранному значению получить id (если выбрано "Все несчастья", то id пусть будет 999).
Это как-нибудь можно сделать не обращаясь повторно к БД с запросом ?
Palladin (2007-01-28 21:45:00) [1]
> Ух ты! Шикарно работает!
> Но как же так. Получается, что item- это не обязательно
> строка, а любой объект?
> а как же тогда ComboBox "понимает", что нужно тогда выводить
> на экран именно строки (fields[1].asstring) ?
читай справку по tstrings
Kostafey (2007-01-28 14:59:00) [2]> [1] Palladin © (28.01.07 05:43)
Ух ты! Шикарно работает!
Но как же так. Получается, что item- это не обязательно строка, а любой объект?
а как же тогда ComboBox "понимает", что нужно тогда выводить на экран именно строки (fields[1].asstring) ?
> [2] Anatoly Podgoretsky © (28.01.07 12:57)
Спасибо. Так и сделал.
Anatoly Podgoretsky (2007-01-28 12:57:00) [3]> Kostafey (28.01.2007 03:46:00) [0]
If ComboBox[] = 'Все несчастья' then result := 999 else result := ...
Palladin (2007-01-28 05:43:00) [4]
with tadoquery.create(nil) do
try
connection:=...
sql.text:='select id,name from table';
open;
while not eof do
begin
combobox.items.addobject(fields[1].asstring,tobject(fields[0].asinteger));
next;
end;
close;
finally
free;
end;
procedure tform1.combobox1select;
begin
showmessage('ID='+inttostr(integer(combobox1.items.objects[combobox1.itemindex])));
end;