Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
ADOStoreProc.FindNext
|
|||
|---|---|---|---|
|
#18+
Народ, уже замучал меня этот вопрос... Как искать поочереди нужные записи с одним значением ? procedure TForm1.BtnFndClick(Sender: TObject); begin Stroka:=EditFnd.Text; ADOStoredProc1.FindNext; end; procedure TForm1.ADOStoredProc1FilterRecord(DataSet: TDataSet; var Accept: Boolean); begin Accept :=ADOStoredProc1TIP_korp.Value = Stroka; end; Если это проделать через TTable , тогда все работает. Но если через TADOStoreProc - тогда не будет. Чего за глюк, и как с ним бороться ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.01.2004, 22:32 |
|
||
|
ADOStoreProc.FindNext
|
|||
|---|---|---|---|
|
#18+
Забыл дописать... Если ADOStoredProc1.Filterd:=true - тогда срабатывает процедура procedure TForm1.ADOStoredProc1FilterRecord(DataSet: TDataSet; var Accept: Boolean); Если false - тогда вообще не срабатывает :-( P.S. Всех с Новым годом! Особенно обезьян! :-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.01.2004, 18:02 |
|
||
|
ADOStoreProc.FindNext
|
|||
|---|---|---|---|
|
#18+
У ADOStoredProc, насколько я понял, другая логика работы. Вызов FilterRecord происходит не во время перемещения по DataSet, а в момент его формирования при получении набора данных с сервера. То есть, необходимое правило выбора записей должно быть определено перед вызовом Open или Exec А то, что срабатывает только при ADOStoredProc1.Filterd:=true, то я вообще-то не понял почему это вызывает удивление? :) Это свойство для того и предназначено, чтобы включать/выключать вызовы FilterRecord. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.01.2004, 23:45 |
|
||
|
ADOStoreProc.FindNext
|
|||
|---|---|---|---|
|
#18+
Кстати, я обычно необходимое условие выбора вставляют либо непосредственно в запрос, либо передаю как параметр в хранимую процедуру. Зачем тащить все записи из таблицы на клиента, чтобы потом из них делать выборку? Пусть уж сервер сам выберет то, что нужно, и перешлёт только нужные мне записи. Кстати, в этом случае при правильно настроенных индексах можно получить существенное ускорение в работе, поскольку при филтрации на клиенте индексы уже не работают (поскольку остались на сервере :) ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.01.2004, 23:52 |
|
||
|
ADOStoreProc.FindNext
|
|||
|---|---|---|---|
|
#18+
Я использую ADOStoreProc - для вызова запроса с параметрами из MSAccess. В справочниках порядка 100 записей, мне нужно их не фильтровать по условиям, а перемещатся по записям кнопкой на форме "Продолжить поиск". К примеру как в Word'e ввел искомое слово, а он перемещается по поисковым словам в документе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2004, 15:10 |
|
||
|
ADOStoreProc.FindNext
|
|||
|---|---|---|---|
|
#18+
Locate - переходит до первой подходящей записи, а мне нужно чтобы дальше он перемещался по набору и искал подходящюю строку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2004, 20:32 |
|
||
|
ADOStoreProc.FindNext
|
|||
|---|---|---|---|
|
#18+
Например, вот так производится поиск вперед по первым буквам (испол-ся ADOQuery, можно и ADOStoredProc) procedure TfrmFindFio.bbtnFindNextClick(Sender: TObject); begin if adoqryFindFio.Active then begin try if Length(Trim(edtFio.Text))>0 then begin adoqryFindFio.Filter:='[FIO] LIKE ('''+edtFio.Text+'*'')'; adoqryFindFio.FindNext; end; except end; end;//if adoqryFindFio.Active end; Соответственно, поиск назад FindPrior. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2004, 18:43 |
|
||
|
ADOStoreProc.FindNext
|
|||
|---|---|---|---|
|
#18+
а при смене фильтра он все же по старому фильтру прыгаеть.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2004, 10:26 |
|
||
|
ADOStoreProc.FindNext
|
|||
|---|---|---|---|
|
#18+
To ТимДругой: При смене фильтра нужно сначала найти первую запись Locate-ом, а потом уже использовать FindPrior и FindNext. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2004, 18:35 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=1965&tid=2115163]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
29ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 311ms |

| 0 / 0 |
