Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Не выставить "без учета больших букв" ADOTable


Автор: Most 12.5.2009, 20:30
задача найти все данные начинающиеся с символов которые ввожу в Едит, все работает хорошо вот только с учетом больших и маленьких букв. Плз подскажите ктото как это убрать лудше...
вот код:
Код

void __fastcall TForm1::Edit2Change(TObject *Sender)
{
AnsiString d;
switch (ComboBox1->ItemIndex){
case 0 : d="Name"; break;
case 1 : d="Kind"; break;
}
ADOTable1->FilterOptions>>foCaseInsensitive;
ADOTable1->Filtered=true;
ADOTable1->Filter=""+d+">='"+Edit2->Text+"%'";
if (Form1->Edit2->Text.IsEmpty()){
ADOTable1->Filtered=false;
}
}


Автор: Данкинг 12.5.2009, 20:58
Например, приводи значение Edit2 к верхнему регистру:
Код

...
ADOTable1->Filter=""+d+">='"+(AnsiUpperCase(Edit2->Text)+"%'";
...


Автор: Most 12.5.2009, 22:35
спс за совет... но вставил код и все равно реагирует на верхний регистр...

Автор: Данкинг 12.5.2009, 22:49
Используй запрос вместо фильтра. Там ИМХО наглядней всё, да и в целом это грамотней фильтров.

Автор: Most 13.5.2009, 11:52
запрос в смысле Query? прост еще немного не разобрался с єтим... тоесть если делать все с помощью запросов нужно компонент ADOTable менять на ADOQuery?

Автор: Dmi3ev 13.5.2009, 12:05
Most, можно и неменять, просто в ДБ грид отображать Table, а если пользователь выбрал фильтрацию, то отображать Query, хотя, конечно необходимость использовать Table отпадает, тк он будет задействован только когда записи в первоначальном виде без фильтров и сортировок... поэтому думай сам... Лучше конечно поменять Table на Query... Но это мое мнение, я сторонник такой штуки, что с БД работать лучше с помощью запросов, потом как запрос и БД - это естественно... Это мое мнение, не замахиваюсь ни на что, но я так делаю... И я так думаю, возможно это заблуждение, но если что-то можно сделать с помощью запроса, я выбираю этот вариант... Может и привык уже... 

Автор: Most 13.5.2009, 12:54
спс... буду пробовать

Автор: xvr 13.5.2009, 14:25
Вот это ADOTable1->FilterOptions>>foCaseInsensitive; должно быть как минимум в другую сторону ADOTable1->FilterOptions<<foCaseInsensitive;, а может быть и вообще так
Код

ADOTable1->FilterOptions=ADOTable1->FilterOptions<<foCaseInsensitive;

Автор: Most 13.5.2009, 18:22
xvr - спс канешн... но вот попробовал все твои варианты и ни один из них не подходит... 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)