Проблема ODBC (SQLIDLEDISCONNECT)

Здравствуйте
Есть VFP-9 приложение, которое через ODBC работает с удаленным MySQL.
Используются курсорадаптеры, подключение происходит так:
[code]
mySQLchserv = SQLSTRINGCONNECT('DRIVER=MySQL ODBC 5.3 ANSI Driver;USER=cx14726_piropt;PORT=3306;PASSWORD=******;SERVER= vh386.timeweb.ru;DATABASE=cx14726_piropt;OPTION=3;STMT=SET NAMES utf8;')
cad.datasourcetype = 'ODBC'
cad.datasource = mySQLchserv[/code]
Все работает нормально, за исключением случаев потери связи с сервером. Долго терпел, и сегодня решил применить SQLIDLEDISCONNECT.
Сделал функцию для осуществления update:
[code]LPARAMETERS lcCursor1
LOCAL updres, idle
updres = TABLEUPDATE(1,.t.,lcCursor1,cErrArr)
IF !updres
LOCAL attempt_cnt
attempt_cnt = 5
DO WHILE attempt_cnt > 0 AND !updres
idle = SQLIDLEDISCONNECT(mySQLchserv)
updres = TABLEUPDATE(1,.t.,lcCursor1,cErrArr)
attempt_cnt = attempt_cnt - 1
ENDDO
IF updres
=MESSAGEBOX('Изменения сохранены.',64)
RETURN .t.
ELSE
=MESSAGEBOX('Ошибка при сохранении таблицы '+ALLTRIM(lcCursor1),64)
RETURN .f.
ENDIF
ELSE
=MESSAGEBOX('Изменения сохранены.',64)
RETURN .t.
ENDIF
[/code]
Теперь вроде как работает, но с большим НО: idle = SQLIDLEDISCONNECT(mySQLchserv) "обрезает" часть строки из SQLSTRINGCONNECT!!!
Получается буд-то выполняется
[code]mySQLchserv = SQLSTRINGCONNECT('DRIVER=MySQL ODBC 5.3 ANSI Driver;USER=cx14726_piropt;PORT=3306;PASSWORD=******;SERVER= vh386.timeweb.ru;DATABASE=cx14726_pir')
[/code]
и появляется такое окно как во вложении.
Если в SQLSTRINGCONNECT('...') я поменяю местами, например, DATABASE и USER, то будет "обрезан" USER. Аналогично PORT и др.
Что я не так делаю?
Да. чуть не забыл: если я в этом окне руками допишу имя БД до конца (то что красным) - все продолжает нормально выполняться.

0

Автор публикации

Пользователи не найдены
Оставить комментарий
Авторизация
*
*
Генерация пароля