Ошибка SQLEXEC() и SQLMORERESULTS ! | |
---|---|
iren Автор Сообщений: 511 Дата регистрации: 28.10.2003 |
На форме организован ввод некоторых данных (Ид.номер,Фамилия, имя и т.д.), из которых
сормировано условие отбора для отправки на сервер (например:
Выдается ошибка (при обращении к выражению IF SQLMORERESULTS(m.ghServer)=2 ) с номером 1474: Invalid call issued while executing a SQLEXEC( ) sequence. (1474): При выполнении цепочки функций SQLEXEC( )был сделан недопустимый вызов Что я неправильно сделала? Кстати, result у меня > 0, но никакого курсора не образовалось... (У меня VFP9) |
Re: Ошибка SQLEXEC() и SQLMORERESULTS ! | |
---|---|
AleksM Сообщений: 17881 Дата регистрации: 11.11.2003 |
Цитата:Я бы не использовал в запросе объекты формы ------------------ Лучше переесть, чем недоспать. Не спеши, а то успеешь. |
Re: Ошибка SQLEXEC() и SQLMORERESULTS ! | |
---|---|
iren Автор Сообщений: 511 Дата регистрации: 28.10.2003 |
Я это учту, конечно, но сейчас сам запрос m.lcSqlOtb сформировался верно (проверила ч/з трассировщик)
Result оказался равным 0, т.е. получается, что SQLEXEC продолжает выполняться. Подскажите, как правильно обрабатывать данные в асинхронном режиме (это все сделала для того, чтобы ограничить число возвращаемых записей на клиент) Спасибо! |
Re: Ошибка SQLEXEC() и SQLMORERESULTS ! | |
---|---|
Aleksey Tsingauz [MSFT] Сообщений: 407 Дата регистрации: 15.06.2004 |
SQLMORERESULTS можно использовать только если BatchMode=.T., подробное объяснение можно найти в разделе документации "Processing Multiple Result Sets".
result - это не количество записей. |
Re: Ошибка SQLEXEC() и SQLMORERESULTS ! | |
---|---|
Владимир Максимов Сообщений: 14095 Откуда: Москва Дата регистрации: 02.09.2000 |
Общая схема работы в асинхронном режиме примерно такая
К сожалению, как определить сколько записей УЖЕ скачано пока процесс не завершен - непонятно. Можно только перед выполнение запроса послать аналогичный запрос, но для подсчета количества записей в результате. |
Re: Ошибка SQLEXEC() и SQLMORERESULTS ! | |
---|---|
piva Сообщений: 18655 Откуда: Курган Дата регистрации: 24.03.2004 |
Цитата:Вот как раз aCountInfo и покажет - Алексей в Бете подсказал про этот параметр, только тогда он был не массивом ЗЫ - раз речь идет именно о 9-ке ------------------ Часто бывает так, что есть над чем задуматься, а нечем. |
Re: Ошибка SQLEXEC() и SQLMORERESULTS ! | |
---|---|
Владимир Максимов Сообщений: 14095 Откуда: Москва Дата регистрации: 02.09.2000 |
В асинхронном режиме эта штука не работает Однако примерное количество записей можно получить через команду GO примерно так:
К недостаткам этого метода можно отнести то, что команда GO фактически переводит выполнение запроса в синхронный режим, потому, что пока выборка не будет закончена или пока количество записей в выборке не превысит установленного порога команда GO просто не будет выполнена. Точнее, она будет ждать пока сможет перейти на указанную запись или сообщить, что это невозможно. Но, судя по поставновке задачи именно это и требуется. |
Re: Ошибка SQLEXEC() и SQLMORERESULTS ! | |
---|---|
piva Сообщений: 18655 Откуда: Курган Дата регистрации: 24.03.2004 |
В асинхронном я не проверял - хотя можно было догадаться - правда в Хелпе по этому поводу не нашел примечания
------------------ Часто бывает так, что есть над чем задуматься, а нечем. |
Re: Ошибка SQLEXEC() и SQLMORERESULTS ! | |
---|---|
iren Автор Сообщений: 511 Дата регистрации: 28.10.2003 |
Спасибо!
Почитала на форуме ваши сообщения, а также ваши ответы на мой вопрос. Стало немного понятнее. Буду смотреть дальше... |
Re: Ошибка SQLEXEC() и SQLMORERESULTS ! | |
---|---|
Aleksey Tsingauz [MSFT] Сообщений: 407 Дата регистрации: 15.06.2004 |
Здравствуйте, Владимир! Это почему же не работает? Очень даже работает. И количество записей скаченных на текущий момент можно узнать с помощью CURSORGETPROP("RecordsFetched").
Результат:
Алексей. |
Re: Ошибка SQLEXEC() и SQLMORERESULTS ! | |
---|---|
iren Автор Сообщений: 511 Дата регистрации: 28.10.2003 |
У меня в курсор все равно попадает весь набор данных.
Написала такой код:
В блоке TRU поставила SUSP, смотрю курсор MyResult, но там уже весь набор данных, а не первая 1000,которую я хочу показать клиенту. Попробовала заменить блок DO while result=0 на следующий:
Но снова в курсоре MyResult весь результат выборки, а не 1000 записей. Подскажите, в чем моя ошибка? |
Re: Ошибка SQLEXEC() и SQLMORERESULTS ! | |
---|---|
Влад Колосов Сообщений: 22664 Откуда: Ростов-на-Дону Дата регистрации: 05.05.2005 |
Так естественно, результатом будут все записи, которые попадают в критерии SELECT.
Чтобы оценить количесто, надо предварительно использовать SELECT count(*) FROM ... Приходят ведь уже все выбранные записи, но в силу ограничения скорости передачи в течение какого-то времени. ------------------ Совершенство - это не тогда, когда нельзя ничего прибавить, а тогда, когда нечего убавить. Исправлено 1 раз(а). Последнее : Влад Колосов, 05.06.06 15:30 |
Re: Ошибка SQLEXEC() и SQLMORERESULTS ! | |
---|---|
iren Автор Сообщений: 511 Дата регистрации: 28.10.2003 |
А я хочу получить порцию записей, вывести эту порцию клиенту вместе с сообщением, что "отобрано 1000 записей." и просьбой уточнить параметры.
Формирую запрос для посылки, например,
INCORRECT SYNTAX NEAR 100 |
Re: Ошибка SQLEXEC() и SQLMORERESULTS ! | |
---|---|
Naomi Сообщений: 1796 Дата регистрации: 09.10.2003 |
ORDER BY ?
|
Re: Ошибка SQLEXEC() и SQLMORERESULTS ! | |
---|---|
Naomi Сообщений: 1796 Дата регистрации: 09.10.2003 |
BTW, MESSAGEBOX('Кол-во записей больше допустимог.Уточните критерии отбора',0,' ')
|
Re: Ошибка SQLEXEC() и SQLMORERESULTS ! | |
---|---|
iren Автор Сообщений: 511 Дата регистрации: 28.10.2003 |
Написала: select top 100 * from arhivpd where fm like 'О%' order by 1 (попробовала через QA пропустить)- по-прежнему INCORRECT SYNTAX NEAR 100 |
Re: Ошибка SQLEXEC() и SQLMORERESULTS ! | |
---|---|
PaulWist Сообщений: 14601 Дата регистрации: 01.04.2004 |
Что-то не верится
------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: Ошибка SQLEXEC() и SQLMORERESULTS ! | |
---|---|
Naomi Сообщений: 1796 Дата регистрации: 09.10.2003 |
Попробуйте все поля перечислить в Select.
Исправлено 1 раз(а). Последнее : Naomi, 05.06.06 19:10 |
Re: Ошибка SQLEXEC() и SQLMORERESULTS ! | |
---|---|
Aleksey Tsingauz [MSFT] Сообщений: 407 Дата регистрации: 15.06.2004 |
Здравствуйте, Iren! Я бы написал это примерно вот так:
Результат:
Алексей. |
Re: Ошибка SQLEXEC() и SQLMORERESULTS ! | |
---|---|
Влад Колосов Сообщений: 22664 Откуда: Ростов-на-Дону Дата регистрации: 05.05.2005 |
Цитата: arhivpd небось view? Ошибка в этом view. ------------------ Совершенство - это не тогда, когда нельзя ничего прибавить, а тогда, когда нечего убавить. |
© 2000-2024 Fox Club  |