Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.27;
Скачать: CL | DM;

Вниз

@@spid и PacketRecords   Найти похожие ветки 

 
Sedunov Vitaly   (2003-10-07 09:10) [0]

Доброо времени суток! У меня возникла следующая проблема: использую ADODataSet -> DataSetProvider -> ClientDataSet. ADOConnection устанавливается только 1 раз. Этому коннекту присваивается свой идентификатор (@@spid). Как только я испозую порционную подкачку в ClientDataSet, то запрос select @@spid на сервере выдает значение, отличное от изначального @@spid. После прекращения порционной подкачки (как только весь набор данных передан на клиента), то значение @@spid становится таким же, как было изначально. Вопрос: как во время порционной подкачки узнать @@spid начального коннекта? Спасибо.


 
Polevi ©   (2003-10-07 10:00) [1]

этого не может быть :-)


 
Sedunov Vitaly   (2003-10-07 13:18) [2]

Может. Я тоже был очень удивлен. Попробуйте сами!


 
KSergey ©   (2003-10-07 13:32) [3]

Вероятнее всего, вы все же не зацепилсь за исходный ADOConnection.
А все ADO-шные компоненты, как известно, очень даже умеют цепляться за сервер самостоятельно.


 
Sedunov Vitaly   (2003-10-07 14:01) [4]

Зацепился. Ситуация подробнее.

1. ADOConnection.Connected=true
2. select @@spid = 60
3. активизация ClientDataSet, который через DataSetProvider сцеплен с ADODataSet, у ClientDataSet свойство PacketRecords=100, кол-во записей>1000
4. select @@spid = 64
5. а) ClientDataSet.Active=False или б) выкачать весь набор данных на клиента
6. любое действие в пункте 5 дает select @@spid = 60,т.е. изначальному значению.

ADOConnection.Connected устанавливается только один раз и никаких дополнительных коннектов и переконнектов нет.


 
Polevi ©   (2003-10-07 14:20) [5]

ShowMessage в BeforeConnect поставь, чудес то не бывает


 
Sedunov Vitaly   (2003-10-07 14:27) [6]

ShowMessage вылезает один раз. Уже все такие штуки перепробовал. Коннект происходит один раз. Второй коннект (который 64) даже не виден в таблице master.dbo.sysprocesses. У 60-го только меняется поле sql_handle. Как только порционная подкачка прекращена, поле sql_handle для spid=60 обнуляется.


 
Polevi ©   (2003-10-07 14:32) [7]

курсор какой у рекордсетов


 
Sedunov Vitaly   (2003-10-07 15:08) [8]

Курсор у ADODataSet серверный.


 
Polevi ©   (2003-10-07 15:50) [9]

клиентский сделай и доложи :-)


 
Sedunov Vitaly   (2003-10-07 15:58) [10]

Делал. Эффект такой же...


 
Polevi ©   (2003-10-07 16:05) [11]

мистика какаято
не знаю что и посоветовать, попробуй поиграть с параметрами подключения ADOConnection, там чтото есть с кешированием соединений


 
Sedunov Vitaly   (2003-10-07 16:28) [12]

Не помогли никакия играния с параметрами. Переделал я немного этот алгоритм и завался на system_user. Он для основного коннекта и "виртуального" один и тот же. Да, кто бы знал, что при порционной подкачке создается еще один коннект...

Всем огромное спасибо!



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

Текущий архив: 2003.10.27;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
1-89302
Abikos
2003-10-08 18:54
2003.10.27
Перерисовка ListView


14-89492
Мазут Береговой
2003-10-09 01:22
2003.10.27
Сегодня праздник! : Календарь рыболова: Сергии Радонежский


11-89191
Gandalf
2002-12-29 20:07
2003.10.27
Гэндальф - Народу:Информация к размышлению


3-89098
Ditrix
2003-10-08 11:23
2003.10.27
представление иеррархии в виде таблицы


1-89311
Иванько
2003-10-15 18:29
2003.10.27
Проблема при использовании LoadFromFile у TStrings