| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > [BCB6] ADOTable, ограниченный Поиск |
| Автор: XPyCT 21.4.2009, 15:12 | ||
| В переменную cLocate заносится имя поля в котором производится поиск! к примеру в таблице 5 записей по названием Васечкин! если даю найти то находит только первого из них и остновка, сколько бы не кликал результат тот же!
как выполнить чтоб при клике переходил к следующей записи? за ранее сорри и спасибо! |
| Автор: A5uKa 21.4.2009, 15:14 |
| TLocateOptions() ? |
| Автор: XPyCT 21.4.2009, 15:17 | ||||||
а что вас смущает? по событию DBGrid1CellClick я получаю на каком столбце(имя) был клик за тем в глобальную переменную AnsiStrin (cLocate) я заношу это имя вот так:
далее уже идет поиск как описано выше: при нажатии на кнопку
|
| Автор: Лапоть 21.4.2009, 15:19 |
| ИМХО, конечно, но советую забыть про все эти табловые забавы, перейти на TADOQuery и освоить SQL! |
| Автор: mrbrooks 21.4.2009, 15:20 |
| XPyCT, а почему бы не решить данную задачу с помощью достаточно простого SQL-запроса? по логике вещей так и должно быть, то бишь метод работает только с первым вхождением записи в наборе данных это множество кстати обладает рядом полезных элементов |
| Автор: XPyCT 21.4.2009, 15:33 | ||
дык есть ли возможность осуществить сие действие по средством адотабле! - дабы не воротить еще оджну форму для квери? |
| Автор: vikaz 21.4.2009, 18:11 | ||
А зачем тебе новая форма, замени Table на Query и работай. Но если тебе надо добавлять какие-то значения в базу, то желательно к этому делу подключить Command. |
| Автор: mrbrooks 22.4.2009, 08:35 | ||
А чем плох TQuery для этих целей? |
| Автор: Лапоть 22.4.2009, 09:21 |
| mrbrooks, тут - на вкус, на цвет... У меня как-то традиционно уже сложилось - создание таблиц делаю через ADOCommand, запросы на выборку - ну тут всё понятно, а запросы на модификацию - зависит от того, есть ли уже в проекте ADOCommand. |
| Автор: vikaz 22.4.2009, 09:24 |
Он не плох, просто при добавлении значения в базу он выдает у меня предупреждение, что нет данных для вывода. Но это сообщение появляется только при проектировании и в скомпилированном проекте оно не появляется. |
| Автор: A5uKa 22.4.2009, 09:56 | ||
такой же баг в 2009 ... не понимаю кстати почему. |
| Автор: vikaz 22.4.2009, 10:08 |
Мне кажется это не баг. Просто это компонента рассчитана на то, чтобы в основном выполнять команды которые возвращают какое-то значение из базы (select). Может быть он таким предупреждением просто дает понять, нечего отображать и думает, наверное, что это ошибка. |
| Автор: Лапоть 22.4.2009, 10:47 |
| А у него нет некоего свойства типа - Предупреждать о...? ЗЫ - речь о чём - о TQuery, или о TADOQuery? |
| Автор: vikaz 22.4.2009, 11:27 |
| не знаю, не находил, может и нет такого, а может плохо искал |
| Автор: Palladin 23.4.2009, 15:02 | ||
| А можно ли посмотреть код Locate???? Если можно, то вырываем код, создаем массив типа инт, туда при первом клике заносим индекс строки, и просто при втором нажатии пропускаем!? Если нет и нехочешь менять компоненты и т.д. придется поднапрячся и написать самому собственную функцию ХрустLocate. Ток кажется это скажется на скорости поиска. код что-то типа:
Бред походу написал, но идея была |
| Автор: XPyCT 23.4.2009, 19:26 | ||||||
| Всем конечно спс! - но всетаки пришлось добавить на форму адоквери и методом исключения уже работать! к сожалению цикл не подойдет! цикл хорош для не большик таблиц а если 10 тыщ записей это скоко ждать пока он обработает! в общем решил так Вот так находим нужных перцов! по клику на кнопке а глобальную переменую- счетчик ClickButtonSearch инкремнтипую
далее уже когда найден наш персонаж можем и открыть форму с его данными вот так опять же смотрим в каком состоянии ClickButtonSearch
таким образом я отработал и адотабле и адоквери на закрытии формы все возвращаю на место к адотабле!
всем огромный респект! |