| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Работа с DBGrid |
| Автор: Voldemar2004 1.1.2006, 20:19 | ||
| Если выделить строку, то работает все нормально. Сделал поиск строки в подстроке, пробегаем по значениям в столбце, если в строке встречается слово "ЗНАЧЕНИЕ", то пропускаем, иначе - удаляем. Как сделать так, чтобы не надо было каждый раз выделять строку в DBGrid'e для сравнения.
|
| Автор: Voldemar2004 1.1.2006, 22:19 | ||
Вот сам все сделал, но скорость.... оставляет желать лучшего даже без DBGrid. Можно как-нибудь увеличить скорость?
|
| Автор: sexton 3.1.2006, 11:30 |
| А почему не ипсользовать родные функции класса AnsiString? AnsiCompareText например. |
| Автор: azesmcar 3.1.2006, 11:40 | ||||
Я не совсем понял что означает эта запись???
Fields[14] возвращяет тебе тип TField * (или TField точно не помню) и ты присваеваешь ему ноль.. Если тебе надо из базы удалить или обновить тогда пиши на SQL чего ради ты циклом делаешь? Используй LIKE он тебе поиск подстроки обеспечит (не забываем про %). А в остальном из вопроса мне ничего не ясно...Что именно ты удаляешь? Ты вроде UPDATE делаешь? С одной стороны ты ишешь строку с другой стороны присваеваешь тому же 14-ому полю значение int... Вобщем если можно поподробнее... Добавлено @ 11:41 Кстати для поиска в TTable есть функция Locate.. |
| Автор: _hunter 3.1.2006, 11:52 |
| а зачем так делать? для того щапросы и придумали, чтобы самому с поискрм не заморачиваться... |
| Автор: Voldemar2004 3.1.2006, 13:07 | ||||||||
если в столбце "13212333 ЗНАЧЕНИЕ 324" "4565 ДРУГОЕ 435435543" "56345 ТРЕТЬЕ 545435555" а надо удалить все, кроме тех, которые выбраны в ListBox'е: например в ListBox указано "ЗНАЧЕНИЕ".
|
| Автор: azesmcar 3.1.2006, 13:57 | ||||||
Ну делай так, мало ли кто что написал на Бейсике...
А если циклом то примерно так будет правильней
Но не думаю что пробегаться циклом по всем полям xорошая идея...делай функцией Locate
Должно быть намного быстрее |