powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Поиск по всем полям
4 сообщений из 4, страница 1 из 1
Поиск по всем полям
    #32280695
Dark Elf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые мастера!

Я хочу сделать поиск по всем полям в базе данных

Делаю я его следующим образом

AnsiString find_str = InputBox("Введите текст для поиска","","");
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT * FROM " + view);
ADOQuery1->SQL->Add("WHERE (ID LIKE '%" + find_str + "%')");
for (unsigned char index = 1;index < DBGrid1->Columns->Count;index++)
{
AnsiString find_column = view + ".\"" + DBGrid1->Columns->Items[index]->Title->Caption + "\"";
ADOQuery1->SQL->Add("OR (" + find_column + " LIKE '%" + find_str + "%')");
}
ADOQuery1->Open();

При этом оно ищет только в первой колонке.

Не подскажете ли как это исправить?

Заранее благодарен за ответ
...
Рейтинг: 0 / 0
Поиск по всем полям
    #32280783
Ой Вэй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты бы привёл получившееся ADOQuery1->SQL.
...
Рейтинг: 0 / 0
Поиск по всем полям
    #32280797
Фотография Cauchy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не совсем понятно почему для поиска используется
DBGrid1->Columns->Items[index]->Title->Caption
конечно если caption совпадает с именем поля в таблице, то все нормально.
А вообще лучше использовать названия полей в таблице откуда извлекаются
данные.
...
Рейтинг: 0 / 0
Поиск по всем полям
    #32281553
123456789098
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у класса TDataSet (родителя в том числе и ADOQuery)есть такое поле как FieldList ... вот пример использования:

for(DS->First();!DS->Eof;DS->Next()){//цыкл по записям
for(int i=0;i<=DS->FieldList->Count-1;i++){// цыкл по полям
AnsiString CurFieldName=DS->FieldList->Fields ->FieldName;// имя поля
...
а тут делаешь с полем все что тебе надо
...
};
T->Post();
};
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Поиск по всем полям
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]