Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.01.24;
Скачать: [xml.tar.bz2];

Вниз

Проблемы с ClientDataSet   Найти похожие ветки 

 
kolj   (2009-12-03 00:59) [0]

Всем привет!
Обнаружыл странную вещь, к Гриду через DataSource подключен Dataset. Select возвращает 1000 записей и работает приблизительно 3 секунды, но грид их выводит на екран через минуту при етом пока идет етот процес загрузка процесора 100 процентов. Грид DevExpress.
Есть у когото идеи, что ето мжет быть и в чем проблема?
Спасибо!


 
Sergey13 ©   (2009-12-03 08:40) [1]

> [0] kolj   (03.12.09 00:59)
> подключен Dataset

Клиентский? Или какой другой? Чем обусловлено использование CDS-а? Есть ли какая то обработка в датасете типа в afterOpen или в AfterScroll?


 
Сергей М. ©   (2009-12-03 09:18) [2]


> Select возвращает 1000 записей и работает приблизительно
> 3 секунды


Подробнее - как ты это определил ?


 
sniknik ©   (2009-12-03 09:26) [3]

> Select возвращает 1000 записей и работает приблизительно 3 секунды
непорядок... 1000 записей так долго возвращать, должны быть цифры порядка 0,03 - 0,3 сек, а у тебя в 10 раз больше...

> что ето мжет быть и в чем проблема?
ну, очевидно же - "Грид DevExpress."... сложно проверить со стандартным и убедиться?
и второе по списку но не по значению - код. все ошибки, неважно какие, даже логические традиционно гнездятся в 17й строке. проверь.
и +, D3 это религия такая использовать настолько устаревшее?  или драйвер пишешь, тогда ClientDataSet там очевидно не к месту (имхо конечно, мало ли чего бывает) .


 
Виталий Панасенко   (2009-12-03 10:39) [4]

небось группировка какая-то используется?


 
kolj   (2009-12-03 12:02) [5]

Программа написана на Delphi 3. Работа над ней началась в 1997 году. Используетса ClientDataSet, на обработчик OnFilterRecord следующий код:

procedure FilterRecord(DataSet: TDataSet;
 var Accept: Boolean);
begin
 if DataSet <> nil then
 with DataSet do
 case DATA_MODE of
   dmActive: Accept := FieldByName("STATUS").Value = "W";
   dmInactive: Accept := FieldByName("STATUS").Value = "N";
   dmAll: Accept := true;
 end;
end;

>> Select возвращает 1000 записей и работает приблизительно
>> 3 секунды

>Подробнее - как ты это определил ?

Misrosoft Profiler и просто смотрел сколько скрипт выполняетса через Menagment Studio


 
sniknik ©   (2009-12-03 12:40) [6]

> на обработчик OnFilterRecord следующий код:
отключай на время открытия, включай после.
+ DisableControl датасету на это время (а можно только это, только + сделать по нему выключатель в фильтре)


 
sniknik ©   (2009-12-03 12:41) [7]

> Программа написана на Delphi 3
проверь скомпили на D7, может не так уж и много изменений понадобится


 
Сергей М. ©   (2009-12-03 13:10) [8]


> Misrosoft Profiler и просто смотрел сколько скрипт выполняетса
> через Menagment Studio


А как выглядит скрипт ?


 
Anatoly Podgoretsky ©   (2009-12-03 13:33) [9]

> kolj  (03.12.2009 12:02:05)  [5]

Ну ты определил только время выполнения скрипта, а не время выдачи.


 
kolj   (2009-12-03 14:03) [10]

SELECT
 emp.EmployeeID,
 emp.UserName,
 cep.Name as Position,
 ocep.Name as OfficialPosition,
 emp.LastNameUkr,
 emp.LastName,
 emp.LastNameEng,
 emp.Surname,
 emp.Address,
 emp.Phones,
 (select top 1 ll.LevelName from vwEmployeeLanguages el with (nolock)
    join vwLanguages l with (nolock) on l.LanguageID = el.LanguageID
    join vwLanguageLevel ll with (nolock) on ll.LanguageLevelID = el.LanguageLevelID
  where  el.EmployeeID = emp.EmployeeID and l.Name = "English") as EnglishLevel,
 emp.Note,
 emp.Status,
 emp.ULC,
 emp.DLC,
 emp.TS,
 sbus.SBU_Name,
 sbus.SBUID,
 emp.DOB,
 emp.EducationFrom,
 emp.PreviousPlaceOfWork,
 emp.AccessibilityFields,
 emp.OrgID,
 emp.OrgCode,
 emp.DateOfEmployment,
 emp.RetiringDate,
 emp.StartOfProfCareer,
 emp.SpecializationsID,
 es.SpecializationsName,
 emp.UserCompName,
 emp.UserCompNumber,
 os.OrgPath,
 sbus.SBUDirectorID,    
 emp1.LastName as SBUDirectorName,
 emp.AssignedSBU,
 sbus1.SBU_Name As AssignedSBU_Name,
 emp.AbsentTill,
 emp.MessengerID,
 (dbo.FieldsList(4, emp.EmployeeID)) As WorkPlace,
 (dbo.FieldsList(1, emp.EmployeeID)) As Room,
 (dbo.FieldsList(2, emp.EmployeeID)) As OfficeLocation,
 (dbo.FieldsList(3, emp.EmployeeID)) As WorkPhone,
 emp.EndOfTrialPeriod,
 emp.Abiliton_ID,
 ab.AbilitonName,
 emp.DiscountCardNumber
FROM vwEMPLOYEES emp with (nolock)
    left join vwEmployeeSBU with (nolock) on emp.EmployeeID = vwEmployeeSBU.EmployeeID
    left join vwSBUs sbus with (nolock) on sbus.SBUID = vwEmployeeSBU.SBUID
    left join vwEmployees emp1 with (nolock) on emp1.EmployeeID = sbus.SBUDirectorID      
    left join vwEmployeeSpecializations es with (nolock) on es.SpecializationsID = emp.SpecializationsID
    left join vwOrgStructure os with (nolock) on emp.OrgID = os.OrgID
    left join vwSBUs sbus1 with (nolock) on sbus1.SBUID = emp.AssignedSBU
    left join vwCurrentEmployeePosition cep with (nolock) on emp.EmployeeID = cep.EmployeeID
    left join vwCurrentOffEmployeePosition ocep with (nolock) on emp.EmployeeID = ocep.EmployeeID
    left join vwAbiliton ab on ab.Abiliton_ID = emp.Abiliton_ID
ORDER BY emp.LastName



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2010.01.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.004 c
15-1258520711
_
2009-11-18 08:05
2010.01.24
Восстановить битый фильм.


2-1259929176
oleg1963lora
2009-12-04 15:19
2010.01.24
CreateDir. Анализ ошибки


11-1210487732
=BuckLr=
2008-05-11 10:35
2010.01.24
Скрыть каретку в richedit НАПРОЧЬ


1-1233798973
ply
2009-02-05 04:56
2010.01.24
Разная процедура для каждой формы.. как?


3-1233556346
Sergey2
2009-02-02 09:32
2010.01.24
update таблицы в Paradox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский