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

Вниз

Как получить НД при ассинх. выполнении запроса   Найти похожие ветки 

 
Stanislav ©   (2005-10-26 14:59) [0]

Подскажите пожалуйста, как мне получить набор данных, который возвращает запрос в результате ассинхронного выполнения ?


 
Stanislav ©   (2005-10-26 15:26) [1]

Скажите хотябы это реально?


 
Seg   (2005-10-26 15:38) [2]

Результат возвращается запускающему запросу.


 
Stanislav ©   (2005-10-26 15:43) [3]

А как потом обратится к эти данным?
После выполнения он остается закрытым.


 
Anatoly Podgoretsky ©   (2005-10-26 15:55) [4]

Попробуй задать вопрос иначе


 
Ega23 ©   (2005-10-26 16:06) [5]

Попробую побыть телепатом: IsolationLevel ?


 
Seg   (2005-10-26 16:07) [6]

После выполнения он остается закрытым.

Кто остается закрытым?

Может просто нужен указатель на завершившийся запрос?


 
Stanislav ©   (2005-10-26 16:08) [7]

Anatoly Podgoretsky ©   (26.10.05 15:55) [4]
На событие  ADOConnection -> OnExecuteComplite
Проверяю состояние ADODataSet.Active, оно равняется False.


 
Stanislav ©   (2005-10-26 16:08) [8]

Удалено модератором


 
Anatoly Podgoretsky ©   (2005-10-26 16:18) [9]

Так мы будем долго толочь воду в ступе, не можешь сказать словами, то хотя бы приводи код.


 
Stanislav ©   (2005-10-26 16:34) [10]

При обычном выполнении т.е. EoAsyncExecute=false
Пишу:
AdoDataset.Open;
ShowMessage(AdoDataSet.FieldByName("MyField").asString)
Результат: 150

При Ассинхронном выолнении т.е. EoAsyncExecute=true
AdoDataset.Open;
на событие:
TForm1.ADOConnection1ExecuteComplete

ShowMessage(InttoStr(RecordsAffected)); Результат - 1

ShowMessage(intToStr(ADODATASET1.RecordCount)); Результат ничего, т.е. нет даже сообщения...


 
Stanislav ©   (2005-10-27 10:19) [11]

Anatoly Podgoretsky ©   (26.10.05 16:18) [9]
Привел. Что не правильно?


 
sniknik ©   (2005-10-27 11:29) [12]

> Привел. Что не правильно?
все! и непонятно по этим кускам чего хочеш сделать, просто по завершению количество получить?

тогда зачем лезеш в компонент в событии которое происходит до того как свойства сего компанента проинициализированы. либо смотри в рекордсете который в это событие приходит...
Form1.ADOConnection1ExecuteComplete
...
ShowMessage(intToStr(Recordset.RecordCount));

либо поставь цикл ожидания пока не откроется полностью... (типа)
тамже (onExecuteComplete)
...
while ADODataSet1.RecordsetState = [stExecuting] do sleep(0);
ShowMessage(intToStr(ADODATASET1.RecordCount));
...
в принципе этот рекордсет, чтотам прходит ты и должен использовать, потому как это и есть тот набор который ты хочеш получить... ->
> как мне получить набор данных, который возвращает запрос в результате ассинхронного выполнения ?
но только осторожнее там, неправильные действия в нем легко сделают твое ассинхронное выполнение синхронным. ;)


 
Stanislav ©   (2005-10-27 12:08) [13]

sniknik ©   (27.10.05 11:29) [12]
Спасибо за совет.
Количество это для проверки.
Я вобщем разобрался в чем причина, но как ее устранить ?
В запросе сначала выполняется хранимка, которая ничего не возвращает, а потом Select. Так вот если заремить хранимку, то я получаю НД, а как получить НД и оставить хранимку?


 
Ega23 ©   (2005-10-27 12:09) [14]

Set NoCount ON/OFF ?


 
Stanislav ©   (2005-10-27 12:12) [15]

Ega23 ©   (27.10.05 12:09) [14]
Сейчас попробую. Спасибо!


 
Stanislav ©   (2005-10-27 12:31) [16]

Спасибо! Все работает!



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

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

Наверх




Память: 0.5 MB
Время: 0.025 c
3-1127905448
Dail
2005-09-28 15:04
2005.11.13
Как распечатать cxGrid???


3-1128350839
alex_***
2005-10-03 18:47
2005.11.13
RefreshRecord


3-1128281938
Сергей (гость)
2005-10-02 23:38
2005.11.13
EhLib и Lookup-поля


2-1130156929
Alex7
2005-10-24 16:28
2005.11.13
Изменение свойств фрейма


1-1130065186
Smarty
2005-10-23 14:59
2005.11.13
Помогите с Invalid floating point operation!!