Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Может кому надо?!
|
|||
|---|---|---|---|
|
#18+
По просьбе Магнуса выкладываю проблему. Может у кого тоже такая была.\r ---------------\r наверное было бы лучше вынести это в форум, потому как оптимизировать надо и много, подобные же ошибки повторяют часто и лучше чтобы решение могли посмотреть и другие. Ну да ладно.\r \r Значит так:\r Dim apl As CRAXDRT.Application\r Set apl= New CRAXDRT.Application\r \r Так и только так. Если обьект обьявлен с NEW, ВБ при каждом обращении провеяет создан ли обьект или нет.То же самое с рекордсетом. Кстати, рекордсету при открытии явно указать что используем хранимку:\r \r rstTemp.Open "uspGetAllExpensesCoding", cnnDatabase, adOpenKeyset,adLockReadOnly,,adCmdStoredProc\r \r Последний параметр как раз это и делает. Дефолтное значение Unknown заставляет делать дополнительные вызовы для определения типа параметра, разница в скоростинможет быть очень большой,особенно при многократном открытии.\r \r \r Далее SetLogOnInfo - очень медленный метод, лучше избегать его и использовать только в крайних случаях.\r Репорт сделать дизайнером в VB. Можно на основе уже существующего. Это тоже сильно ускорит процесс. \r Даллее. Передача данных. Гораздо большую свободу свободу и контроль дает использование ttx файла - виртуального источнка данных. Файл содержит только описание будущего рекордсета. Сами данные поставляются в ран-тайме.\r Вот здесь я это как раз иу описывал:\r /topic/80382&hl=ttx \r \r Пока вроде все, попробуйте и сообщите о результах.\r \r Все таки подумайте о вынесении вопроса на форум. Многие встречают ту же проблему.\r \r > \r > Добрый день!\r > Я запускаю отчет вот таким способом:\r > ----------------------\r > Dim apl As New CRAXDRT.Application\r > Dim rpt As New CRAXDRT.Report\r > Dim rstTemp As New ADODB.Recordset\r > Set rpt = apl.OpenReport(strRepPath & "Expenses.rpt")\r > rpt.Database.Tables(1).SetLogOnInfo "LSTSERVER1", "LST", "sa", "me"\r > rpt.DiscardSavedData\r > rstTemp.Open "uspGetAllExpensesCoding", cnnDatabase, adOpenKeyset,\r > adLockReadOnly\r > rpt.Database.SetDataSource rstTemp\r > frmRepExpenses.crvPrimary.ReportSource = rpt\r > frmRepExpenses.crvPrimary.ViewReport\r > frmRepExpenses.Show\r > ------------------------\r > Но он очень медленно формируется около 15 секунд. Хранимка\r > uspGetAllExpensesCoding выполняется менее секунды. Не подскажете в чем дело?\r > И вообще как вам мой VB-код? Может его можно как-то оптимизировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2004, 10:50 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=32450952&tid=2169901]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
12ms |
get forum data: |
4ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
| others: | 226ms |
| total: | 386ms |

| 0 / 0 |
