Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> динамическое заполнение ComboBox из бызы данных. 
:(
    Опции темы
gambit
Дата 14.3.2007, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: нет
Всего: 40



грубый пример но примерно так:
На форме есть таблица dbgrid из 2 столбцов(id,ФИО), ComboBox и label.

Так вот мне надо чтоб в ComboBox появились все значения столбца фио, а при выборе, в label записывалось значение id выбранного ФИО.


 smile 
PM MAIL ICQ Skype   Вверх
Yanis
Дата 14.3.2007, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Цитата(gambit @  14.3.2007,  12:29 Найти цитируемый пост)
Так вот мне надо чтоб

Как вижу слово надо, так и хочется ответить "Больше тебе ничего не надо?" smile
Почему бы не сипользовать TDBComboBox и TDBText?


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Данкинг
Дата 14.3.2007, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 9
Всего: 130



Ну, циклом проходим по таблице и добавляем значения в комбик, больше никак ИМХО.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
gambit
Дата 14.3.2007, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: нет
Всего: 40



Цитата(Yanis @  14.3.2007,  11:33 Найти цитируемый пост)
Почему бы не сипользовать TDBComboBox и TDBText? 


Цитата(gambit @  14.3.2007,  11:29 Найти цитируемый пост)
чтоб в ComboBox появились все значения столбца фио


PM MAIL ICQ Skype   Вверх
ama_kid
Дата 14.3.2007, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 15
Всего: 95



Что-то я не понял, видимо, проблему...
Такой код:
Код

var
 Con: TADOConnection; 
 aq:TADOQuery;

// функция:
Сon.ConnectionString:=' твоя строка подключения ';
aq.Connection:=Con;

aq.SQL.Text:='SELECT [name] FROM твоя_таблица';
try
 aq.Open;
except
end;
ComboBox1.Clear;
for i:=0 to aq.Recordcount-1 do
 begin
  ComboBox1.Items.Add(aq.Recordset.Collect[0]);
  aq.MoveNext;
 end; 

у меня никогда не вызывал проблем...


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
gambit
Дата 15.3.2007, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: нет
Всего: 40



Использую код
Код

begin
ComboBox1.Clear;
form1.ADOTable1.First;
for i:=0 to form1.ADOTable1.RecordCount-1 do
begin
s:=form1.ADOTable1.Recordset.Collect[1]+' '+form1.ADOTable1.Recordset.Collect[2]+' '+form1.ADOTable1.Recordset.Collect[3];
ComboBox1.Items.Add(s);
application.ProcessMessages;
form1.ADOTable1.Next;
end;


На форме таблица

| а | b | c |
| 1 | 1 | 1 |
| 2 | 2 | 2 |
| 3 | 3 | 3 |
| 4 | 4 | 4 |
| 5 | 5 | 5 |

После выполнения в combobox1 должно появится
1 1 1
2 2 2 
3 3 3
4 4 4
5 5 5

Запускаю и получаю
1 1 1
5 5 5
5 5 5
5 5 5
5 5 5
5 5 5

Начинаю проверять что не так, ставлю точку прерывания делаю по шагам и о чудо в итоге получаю
1 1 1
2 2 2 
3 3 3
4 4 4
5 5 5

На радостях снимаю точку, запускаю и в итоге
1 1 1
5 5 5
5 5 5
5 5 5
5 5 5
5 5 5

Снятие оптимизации кода непомогает, что это может быть? Я уже измучился.  smile  smile  smile  smile 




PM MAIL ICQ Skype   Вверх
ama_kid
Дата 15.3.2007, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 15
Всего: 95



Если в дебаге на данном участке кода все нормально - вывод: скорее всего какой-то другой код еще вступает в действие и выполняет работу с комбобоксом. Приведи полностью проект...


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
gambit
Дата 15.3.2007, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: нет
Всего: 40



Лови

Это сообщение отредактировал(а) gambit - 15.3.2007, 17:11
PM MAIL ICQ Skype   Вверх
gambit
Дата 15.3.2007, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: нет
Всего: 40



Кстати там в реестре надо будет добавит ключ pach с путем к проге.
Просто это маленькая часть огромного комплекса. И лови то что готово от бызы данных. Она должна лежать в папке pach.


Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  brick.rar 17,17 Kb
PM MAIL ICQ Skype   Вверх
ama_kid
Дата 15.3.2007, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 15
Всего: 95



во-первых, из-за того, что у меня не открывалась по умолчанию таблица, я добавил еще открытие таблицы:
Код

...
ComboBox1.Clear;
try
 ADOTable1.Open;
except
end;
form1.ADOTable1.First;
...

Не совсем понятно, почему у тебя она открывается, ну да ладно...
Во вторых: замени 
Код
form1.ADOTable1.Next;

на 
Код
form1.ADOTable1.MoveBy(1);

Должно заработать...

Добавлено:
Нет, нифига, чо-та не хочет... Копаем дальше... Вообще е совсем правильная концепция - использование TADOTable для получения информации...

Добавлено @ 16:58 
А, блин...
Надо использовать конструкцию типа:
s:=form1.ADOTable1.Fields[1].AsString +' '+form1.ADOTable1.Fields[2].AsString+' '+form1.ADOTable1.Fields[3].AsString;


Это сообщение отредактировал(а) ama_kid - 15.3.2007, 16:54


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
gambit
Дата 15.3.2007, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: нет
Всего: 40



Цитата(ama_kid @  15.3.2007,  16:46 Найти цитируемый пост)
s:=form1.ADOTable1.Fields[1].AsString +' '+form1.ADOTable1.Fields[2].AsString+' '+form1.ADOTable1.Fields[3].AsString;

Лови +


PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0578 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.