|
|
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
2 Виктор авторпрограммист - даже в беседе проводишь обработку возможных ошибок и смех и грех, тяжело по жизни (в общении) когда думаешь на VB и TSQL, не поверишь даже сны снятся в рамках контроля целостности данных )) 2 ALL Затронутая проблема не давала мне спокойно жить все празники и вот к чему я пришел. 1. при запуске ACCESS 2003 есть нудное предостережение, что не установив JET SP8 будут проблемы с фильтрами. Я несказанно обрадовался и стал качать с надеждой что замена ядра может поможет и ACCESS 2002 - фиг не помогает. (вариант с акксесс 2003 буду тестить сегодня) 2. Решил что если программно заменять клиентский фильтр на серверный то проблем с суммовыми полями быть не должно да и скорость не должна упасть Вот что получилось: ADP, ACCESS 2002 замена клиентского фильтра на серверный: Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. проверено и работает при источнике данных таблице, SQL строке, представлении не будет работать с хр.процедурой В таком варианте работают суммовые поля при использовании фильтров. для оценке скорости брал таблицу с 300 000 записей - я считаю что это много для вывода в форму скорость до 2 сек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 10:38 |
|
||
|
Как сохранить пользовательские сортировки?
|
|||
|---|---|---|---|
|
#18+
самоисправляюсь: Код: plaintext 1. заблуждался будет правильно так 'В общий модуль' Option Compare Database Public Sub SET_ServerFilter(ByRef FRM As Form) Echo False Dim SF As String SF = FRM.Filter If SF = "" Or FRM.FilterOn = False Then ''" FRM.ServerFilter = "" ''" FRM.RecordSource = FRM.RecordSource Echo True Exit Sub End If SF = Replace(FRM.Filter, Chr(34), "'", , , vbTextCompare) 'не стал заморачиваться с незаменой кавычек и ALIKE внутри других кавычек, но думаю что для начала и так сгодится " SF = Replace(SF, " ALike ", " Like ", , , vbTextCompare) 'Если в источнике данных не имя объекта а SQL строка то' If frm.recordsource like "*SELECT*" Then SF = Replace(SF, FRM.Name & ".", "", , , vbTextCompare) If Trim(FRM.ServerFilter) = "" Or IsNull(FRM.ServerFilter) Then FRM.ServerFilter = SF Else FRM.ServerFilter = FRM.ServerFilter & " AND " & SF End If FRM.Filter = "" FRM.RecordSource = FRM.RecordSource Echo True End Sub[/SRC] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 11:03 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32434243&tid=1676219]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
50ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 190ms |
| total: | 329ms |

| 0 / 0 |
