Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Remote View - множественность подключений  [new]
True*
Member

Откуда:
Сообщений: 12
Приложение VFP8 - SQL-сервер(связь через ODBC). Работаю через Remote View. Пытаюсь избавиться от множественности подключений к серверной базе данных. Читала вопрос https://www.sql.ru/forum/actualthread.aspx?tid=185333&hl=connect. Во всех Remote View ставлю чек "Share Connection". При запуске проекта периодически в разных местах (т.е. при открытии разных View) выдает ошибку "Connection is busy with results for another hstmt". C чем это может быть связано?
30 янв 06, 14:30    [2300982]     Ответить | Цитировать Сообщить модератору
 Re: Remote View - множественность подключений  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Возможно, Вы используете асинхронный режим доступа. Это значит, что FoxPro не ждет, пока с сервера будет получен результат запроса, а продолжает выполнение программы далее.

По умолчанию, FoxPro настроен на синхронный режим.

Проверьте настройку "Asynchronous" для каждого Remote View и убедитесь, что она НЕ установлена.

Если асинхронный режим требуется по условию задачи, то следует перед открытием очередного Remote View убедится что коннект не занят.

IF SQLGETPROP(nConnectionHandle, "ConnectBusy") = .F.
* Коннект nConnectionHandle свободен, можно открывать Remote View
ENDIF
30 янв 06, 15:14    [2301230]     Ответить | Цитировать Сообщить модератору
 Re: Remote View - множественность подключений  [new]
Beresnev
Member

Откуда:
Сообщений: 74
Если Вы используете синхронный режим доступа к данным, то посмотрите описание фнкций DBGETPROP() и DBSETPROP(), где упоминается параметр FetchSize ( = 100 по умолчанию) и раскрывается его роль. Попробуйте
DBSETPROP("rv_SomeView","VIEW","FetchSize",-1)
30 янв 06, 16:24    [2301815]     Ответить | Цитировать Сообщить модератору
 Re: Remote View - множественность подключений  [new]
Igor Korolyov
Member

Откуда: Гомель, Беларусь
Сообщений: 2512

Hi Beresnev!

Верное замечаение! А особенно усугубляет эту ситуацию настройка
FetchAsNeeded=.T.
Кстати помимо выставления FetchSize в -1 можно пойти с "другой стороны" - и
выставить MaxRecords в 100 :) Иного приемлемого способа борьбы в ситуации
использования DataEnvironment для открытия представлений я не знаю - если же
открывать представления руками, то можно до какой-то степени координировать
процесс используя ConnectBusy - но это конечно много ручного кодирования, от
которого и уходят те, кто предпочитает RV :(

Posted via ActualForum NNTP Server 1.3

1 фев 06, 02:55    [2307439]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить