powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Выяснение текущего количества записей в запросе к DB2
11 сообщений из 11, страница 1 из 1
Выяснение текущего количества записей в запросе к DB2
    #36610155
Filka13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!

Столкнулся с такой задачей, нужно при SQL запросе выяснить текущее значение reccount() в курсоре результата. Цель - рабочий ProgressBar

Решил сделать так: x3=SQLEXEC(x1 ,"SELECT COUNT(*) AS nCnt FROM DB2INST.x2 x2 WHERE RETRN() =TRUE",[qSQLP])

function RETRN
*// Действия с прогрессбаром
return .T.
endfunc

Не хочет он его отрабатывать и все, x3 = -1
...
Рейтинг: 0 / 0
Выяснение текущего количества записей в запросе к DB2
    #36610165
Filka13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу прощения, не тот SQL вставил

x3 = SQLEXEC(x1 ,"SELECT * FROM DB2INST.x2 x2 WHERE RETRN() =TRUE",[qSQLP])
...
Рейтинг: 0 / 0
Выяснение текущего количества записей в запросе к DB2
    #36610281
Filka13,
а как вы собрались на стороне DB2, которая собственно запрос и обрабатывает, выполнять фоксовую функцию? Функция на Вашем компе, сервер на другом компе, но выполяться должны вместе?
...
Рейтинг: 0 / 0
Выяснение текущего количества записей в запросе к DB2
    #36610292
Filka13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да... Что то я сглупил... Вы конечно же правы. Буду дальше думать как же быть... и как все же реализовать сие. БД Огромная, находится далеко, тормозит при загрузки жутко, так что реализовать прогрессбар необходимо.

Огромное спасибо. Придется сделать выборку с LIMIT и от него уже отталкиваться.
...
Рейтинг: 0 / 0
Выяснение текущего количества записей в запросе к DB2
    #36610514
Filka13реализовать прогрессбар необходимо.Именно прогрессбар и никак иначе? А сервер умеет сообщать количество обработанных записей до окончания обработки? То есть он их еще не видел, но уже знает их количество? И умеет отдавать эти знания во время выполнения запроса? Или таки он узнает количество обработанных (а не подлежащих обработке) записей только после выполнения запроса? Может таки не городить ерунду и заняться индикацией выполнения процесса в виде чего-то бесконечно движущегося, а не пытаться узанть заранее то, чего нельзя узнать заранее?
...
Рейтинг: 0 / 0
Выяснение текущего количества записей в запросе к DB2
    #36614582
Filka13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может и умеет, честно я лишь недавно начал работать с серверами DB2 и на что он способен не знаю. Количество записей в таблице я вычислил..., это было не сложно..., а вот с остальным проблемы.
Может и бесконечность сделать... Но наверное я все же остановлюсь на прогрессбаре, так как лучще уж видеть наглядно как качаются более миллиона записей

В целом, это заплатка, так как подгружаются данные на другой сервер DB2 :)
...
Рейтинг: 0 / 0
Выяснение текущего количества записей в запросе к DB2
    #36614591
Filka13Но наверное я все же остановлюсь на прогрессбаре, так как лучще уж видеть наглядно как качаются более миллиона записей Для этого не нужен сервер. Ибо он наврят ли знает сколько записей клиент забрал. Но это точно знает клиент. Вот на клиенте и считайте полученные записи и сравнивайте с общим количеством (если оно у Вас есть). Вот тогда и прогрессбар можно будет сделать.
...
Рейтинг: 0 / 0
Выяснение текущего количества записей в запросе к DB2
    #36614877
Filka13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проходящий.Filka13Но наверное я все же остановлюсь на прогрессбаре, так как лучще уж видеть наглядно как качаются более миллиона записей Для этого не нужен сервер. Ибо он наврят ли знает сколько записей клиент забрал. Но это точно знает клиент. Вот на клиенте и считайте полученные записи и сравнивайте с общим количеством (если оно у Вас есть). Вот тогда и прогрессбар можно будет сделать.

Есть идеи как во время выполнение SQL запроса обратится к уже выбранным записям?
...
Рейтинг: 0 / 0
Выяснение текущего количества записей в запросе к DB2
    #36614892
Filka13Есть идеи как во время выполнение SQL запроса обратится к уже выбранным записям?К выбранным клиентом? Если это асинхронный запрос, то выбранные записи накапливаются в курсоре. Если запрос синхронный (что для выборки более миллиона записей как-то не очень), то ничего нельзя сделать до окончания выполнения запроса.
...
Рейтинг: 0 / 0
Выяснение текущего количества записей в запросе к DB2
    #36614905
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Filka13Есть идеи как во время выполнение SQL запроса обратится к уже выбранным записям?
Выполнять запрос асинхронно. Т.е. установить свойство

Код: plaintext
SQLSETPROP(nStatementHandle, "Asynchronous" , .T.)

В этом случае можно выполнять обработку в процессе подкачки данных с сервера. В том числе и количество полученных записей, используя 4 параметр функции SQLExec() - acountInfo в VFP9

Пример можно посмотреть здесь

http://forum.foxclub.ru/read.php?29,206294,207017#msg-207017

Только следует иметь в виду, что работа в асинхронном режиме имеет свои особенности.
...
Рейтинг: 0 / 0
Выяснение текущего количества записей в запросе к DB2
    #36615020
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проходящий.Filka13Есть идеи как во время выполнение SQL запроса обратится к уже выбранным записям?К выбранным клиентом? Если это асинхронный запрос, то выбранные записи накапливаются в курсоре. Если запрос синхронный (что для выборки более миллиона записей как-то не очень), то ничего нельзя сделать до окончания выполнения запроса.
Не совсем так. Пока происходит Fetch данных в курсор при асинхроном чтении данных с сервере, сам курсор, куда делается Fetch (который указан в команде SQLEXEC), вам не доступен! Придеться и на сервере разбивать данные на части и по частям их доставлять клиенту. Вот тогда можно будет обрабатывать предыдущий набор данных, пока читается следующий. Вот тут я приводил пример: http://vfox.kristall.ru/sql_async.html
С уважением, Алексей
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Выяснение текущего количества записей в запросе к DB2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]