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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.04 c
2-1130228732
syte_ser78
2005-10-25 12:25
2005.11.13
Access violation


6-1122847694
Flood_control
2005-08-01 02:08
2005.11.13
Как организовать отображение на ShellListView


11-1111257733
rofl
2005-03-19 21:42
2005.11.13
linux + fpc + kol


14-1129875112
Ega23
2005-10-21 10:11
2005.11.13
Как вы только живёте в Москве???


3-1128152089
FH
2005-10-01 11:34
2005.11.13
Возврат значения поля Identity





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский