Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
 
vetal0007
29 / 29 / 3
Регистрация: 11.02.2012
Сообщений: 339
1

Проверить записи в ListBox и ADODataSet на совпадение

17.05.2014, 19:00. Просмотров 336. Ответов 2
Метки нет (Все метки)

Есть таблица с 2 поями: Код и Наименование.
Есть ListBox.
Мне нужно создать цикл в котором я сравниваю название каждого элемента в ListBox с названием в таблице и узнаю его код и так с каждым.
Вот что сделал:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int i,j;
ADODataSet1->First();
for (i = 0; i < sListBox3->Count; i++)
{
    for (j = 0; j < ADODataSet1->RecordCount; j++)
    {
        if (ADODataSet1->Fields->Fields[1]->AsString==sListBox3->Items->Strings[i])
        {
           ShowMessage(ADODataSet1->Fields->Fields[0]->AsString);
        }
        ADODataSet1->Next();
    }
}
Что не так? Выводит код только 1го элемента.

Примечание: Если пишу код не грамотно или можно оптимальнее говорите. Пишу диплом, поэтому чем качественнее, тем лучше.

Добавлено через 4 минуты
Я так понял ADODataSet двигается, а вот ListBox нет...

Добавлено через 7 минут
Так. Я понял что я что-то намудрил. Надо как-то так:
C++
1
2
3
4
5
6
7
8
9
10
int i;
ADODataSet1->First();
for (i = 0; i < ADODataSet1->RecordCount; i++)
{
    if (ADODataSet1->Fields->Fields[1]->AsString==sListBox3->Items->Strings[i])
    {
        ShowMessage(ADODataSet1->Fields->Fields[0]->AsString);
    }
    ADODataSet1->Next();
}
Но вот в чем проблема: Список в таблице всегда больше, чем в ListBox'е.
То есть, если в ListBox'е 2 записи, а в таблице 3, то будет выбивать ошибку, т.к. в sListBox3->Items->Strings[3], а 3 строку нету.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2014, 19:00
Ответы с готовыми решениями:

AdoDataSet. Добавление новой записи (insert) и связь DBLookupComboBox
Всем доброго времени суток. Имеется такая не большая проблема. В общем, есть форма, с дбгридом,...

Проверить совпадение содержимого двух Edit-ов
как сделать проверку из edit2 по edit1 по совпадению символов? т.е. как проверка пароля. например...

ADODataSet
ADODataSet-&gt;CommandText = Query; Подскажите, как определить удачно выполнился запрос или нет ?

ADODataSet
Подскажите, пожалуйста, как поместить в DBGrid набор данных, возвращаемых ADODataSet. Заранее...

ADODataSet в ПОТОКЕ
Добрый день!!! Оч. нужна помощь. Запускаю поток MyThr *MT1; MT1 = new...

2
Sasha
4923 / 2387 / 530
Регистрация: 05.06.2008
Сообщений: 7,477
Записей в блоге: 3
17.05.2014, 19:07 2
А так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int i,j;
//ADODataSet1->First();
for (i = 0; i < sListBox3->Count; i++)
{
    ADODataSet1->First(); 
    while(!ADODataSet1->Eof)
    {
        if (ADODataSet1->Fields->Fields[1]->AsString==sListBox3->Items->Strings[i])
        {
           ShowMessage(ADODataSet1->Fields->Fields[0]->AsString);
        }
        ADODataSet1->Next();
 }
1
vetal0007
29 / 29 / 3
Регистрация: 11.02.2012
Сообщений: 339
17.05.2014, 19:14  [ТС] 3
Все отлично работает, спасибо.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2014, 19:14

Активация ADODataSet
Проблема в следующем. Нужно забацать авторизацию по таблицам акцесса. и вроде бы все норм, и...

удаление через ADODataSet
удаляю строки в таблицах в access-e void __fastcall TForm5::Button4Click(TObject *Sender) { ...

ADODataSet->Column - представление в коде
Хочу заполнить пиклист для колонки Music (8я), ADODataSet1, данные берёт из ADODataSetMusicTable -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru