:: Visual Foxpro, Foxpro for DOS
Не open server + foxpro
ventall
Автор

Сообщений: 132
Дата регистрации: 29.11.2013
подскажите пожалуйста
создал форму, создал курсор адаптер, через data environment все добавил. все работает. подключается к sql серверу, данные изменяются, записываются. и это все работает ровно до паузы в 15 секунд. дальше вылетает ошибка:
Connectivity error: unable to retrieve specific error information. Driver is probably out of resources
нажимаем продолжить, и дальше опять все работает пока еще не сделаешь паузу на 15 секунд. Вычитал про SQLSETPROP(0, "ConnectTimeOut", 0), ставлю в лоад формы - не помогает, или я ее не правильно применяю... как изменить таймаут соединения?



Исправлено 1 раз(а). Последнее : ssa, 08.09.19 09:35
Ratings: 0 negative/0 positive
Re: Не open server + foxpro
ssa

Сообщений: 12999
Откуда: Москва
Дата регистрации: 23.03.2005
И с чего вы решили что дело во времени ожидания установки соединения с сервером? У вас процесс соединения с сервером не укладывается в 15 секунд?
Если да, то может заняться установлением и устранением причин такой задержки. Если нет, то каким боком тут Connection timeout и на что вы собрались влиять меняя этот параметр?
Или вы еще ничего не выяснили, а просто наугад решили что раз 15 секунд, то это может быть только Connection timeout?


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Не open server + foxpro
ventall
Автор

Сообщений: 132
Дата регистрации: 29.11.2013
по этой ошибке здесь на сайте 2 темы, но там другая проблема, хотя тоже упоминалось похожее поведение при сворачивании программы. дальше просто гуглил и на зарубежных сайтах указывалась такая проблема и предположение что причина именно длительности соединения, и я решил что этот параметр устанавливает длительность соединения...



Исправлено 2 раз(а). Последнее : ventall, 08.09.19 10:25
Ratings: 0 negative/0 positive
Re: Не open server + foxpro
ssa

Сообщений: 12999
Откуда: Москва
Дата регистрации: 23.03.2005
При обрыве соединения выдается совсем другое сообщение. Так что прежде чем кидаться что-то где-то исправлять поищите причину происходящего


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Не open server + foxpro
ventall
Автор

Сообщений: 132
Дата регистрации: 29.11.2013
начал с начала, создал форму,
в лоад формы

PUBLIC lcDSN, lnConnHandle
lcDSN="DRIVER=MariaDB ODBC 3.1 Driver;"+;
"UID=root;"+;
"STMT=;"+;
"OPTION=16;"+;
"PASSWORD=;"+;
"SERVER=192.168.0.5;"+;
"DATABASE=testdb;"+;
"DESC="

lnConnHandle=SQLSTRINGCONNECT(lcDSN)

WITH thisform
SQLEXEC(lnConnHandle,"select * from fipa", "afipa")
endwith

далее на форме грид, все колонки прописаны, рекордсорс формы тоже. работает, для сохранения изменений добавил кнопку
в клик
a = afipa.id
SQLEXEC(lnConnHandle, "update fipa set NAME = ?afipa.name,;
ADRESA = ?afipa.adresa,;
region = ?afipa.region where id = ?a")
и работает так же, тоесть какое то время работает, данные обновляются, и потом уже без ошибки перестает обновляться. где копать, не знаю. настройки сервера?
Ratings: 0 negative/0 positive
Re: Не open server + foxpro
ssa

Сообщений: 12999
Откуда: Москва
Дата регистрации: 23.03.2005
ventall
настройки сервера?
Сообщение об ошибке отсылает к драйверу.
Возможно надо принудительно закрывать/открывать соединение между запросами.


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Не open server + foxpro
ventall
Автор

Сообщений: 132
Дата регистрации: 29.11.2013
Вы правы, если закрывать/открывать - работает. Но как закрывать/открывать соединение в data environment используя курсор адаптер?



Исправлено 2 раз(а). Последнее : ventall, 08.09.19 13:23
Ratings: 0 negative/0 positive
Re: Не open server + foxpro
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
В общем и целом лучше не использовать DE - он довольно туго управляем. Свой контейнер для курсорадаптеров (или даже просто хранить их в свойствах формы - их не так уж и часто требуется 100 штук использовать на 1 форме ) и свой же код по открытию/обновлению/перезапросу.

Касаемо исходной проблемы с таймаутом - читать документацию по используемой версии сервера и ODBC драйвера. Вполне возможно что требуется всего лишь настройка соединения (опциями драйвера, или командами типа set session ...)
Ну к примеру для MariaDB имеются различные "таймеры неактивности", принудительно закрывающие соединения mariadb.com
Если поменять настройки сервера/соединения нельзя, или же проблема где-то посередине (например какой-то промежуточный сервер разрывает соединения) то нужно создать инфраструктуру для подключения/отключения адаптеров (это довольно муторное дело, если делать всё по уму и не плодить по 100500 отдельных соединений на каждый чих - против чего сервер, и его DBA тоже может сильно возражать ) или как минимум для реконнекта в случае ошибок - поиск по форуму в части SQLIdleDisconnect должен дать пищу для размышлений.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Не open server + foxpro
ventall
Автор

Сообщений: 132
Дата регистрации: 29.11.2013
спасибо всем! SQLIdleDisconnect помог
Ratings: 0 negative/0 positive
Re: Не open server + foxpro
rvc44

Сообщений: 2211
Откуда: Тамбов
Дата регистрации: 06.12.2005
ventall, посмотрите готовое решение DBFToMySQL v1.0 - инструмент, который позволит вам экспортировать вашу базу данных и свободные DBF-таблицы Visual FoxPro в MySQL и MariaDB.

Ссылочка: developervfp.blogspot.com



Исправлено 1 раз(а). Последнее : rvc44, 22.09.19 03:12
Ratings: 0 negative/0 positive
Re: Не open server + foxpro
ventall
Автор

Сообщений: 132
Дата регистрации: 29.11.2013
спасибо!
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 30 MikhsR dafni_2004  (Гостей: 28)

© 2000-2024 Fox Club 
Яндекс.Метрика