:: Архив конференции по VFP до 2005 года
Подключение по ODBC из exe-файла
mibdmitry
Автор
Столкнулся с проблемой: программа, запущенная в интерактивном режиме, нормально подключается через ODBC к Pervasive-SQL серверу и успешно выполняет SQLCONNECT (и все, что далее следует). Откомпилированный exe-модуль выдает ошибку подключения, возвращая -1. Несколько лет назад я подобное преодолевал, да забыл, как именно. Может быть, кто-нибудь подскажет возможную причину ошибки?
Ratings: 0 negative/0 positive
Re: Подключение по ODBC из exe-файла
Alex Roublev

Сообщений: 3695
Откуда: Ярославль
Дата регистрации: 28.09.2002
SC = SQLCONNECT("Apteka","","",.T.)
IF SC < 0
MESSAGEBOX("Не найден ODBC источник данных: системный dsn Apteka",0,"Внимание:")
REGOBJECT=NEWOBJECT("odbcreg","registry")
REGOBJECT.OPENKEY("SOFTWARE\ODBC\ODBC.INI\Apteka",-2147483646,.T.)
REGOBJECT.SETREGKEY("BackgroundFetch","Yes","SOFTWARE\ODBC\ODBC.INI\Apteka",-2147483646,.T.)
REGOBJECT.SETREGKEY("Collate","Machine","SOFTWARE\ODBC\ODBC.INI\Apteka",-2147483646,.T.)
REGOBJECT.SETREGKEY("Deleted","Yes","SOFTWARE\ODBC\ODBC.INI\Apteka",-2147483646,.T.)
REGOBJECT.SETREGKEY("Description","база данных аптечного отделения","SOFTWARE\ODBC\ODBC.INI\Apteka",-2147483646,.T.)
DO CASE
CASE VAL(OS(3)) >= 5
REGOBJECT.SETREGKEY("Driver","C:\WINDOWS\system32\vfpodbc.dll","SOFTWARE\ODBC\ODBC.INI\Apteka",-2147483646,.T.)
CASE VAL(OS(3)) < 5
REGOBJECT.SETREGKEY("Driver","C:\WINDOWS\system\vfpodbc.dll","SOFTWARE\ODBC\ODBC.INI\Apteka",-2147483646,.T.)
ENDCASE
REGOBJECT.SETREGKEY("Exclusive","No","SOFTWARE\ODBC\ODBC.INI\Apteka",-2147483646,.T.)
REGOBJECT.SETREGKEY("Null","Yes","SOFTWARE\ODBC\ODBC.INI\Apteka",-2147483646,.T.)
REGOBJECT.SETREGKEY("SetNoCountOn","No","SOFTWARE\ODBC\ODBC.INI\Apteka",-2147483646,.T.)
REGOBJECT.SETREGKEY("SourceDB",LOWER(JUSTDRIVE(SYS(2019)))+"\","SOFTWARE\ODBC\ODBC.INI\Apteka",-2147483646,.T.)
REGOBJECT.SETREGKEY("SourceType","DBF","SOFTWARE\ODBC\ODBC.INI\Apteka",-2147483646,.T.)
RELEASE REGOBJECT
ELSE
SQLDISCONNECT(SC)
ENDIF
Ratings: 0 negative/0 positive
Re: Подключение по ODBC из exe-файла
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, mibdmitry!

Ну дык ты AERROR(laErrorInfo) то после SQLCONNECT() (если он вернул -1) попользуй - и почитай что за ошибка.




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Подключение по ODBC из exe-файла
mibdmitry
Автор
Добрый день.
Всем спасибо за участие и помощь!
Проблема была проста до смешного. После реализации данной задачи выполнялись другие проекты, для одного из которых была проведена замена настройки "Collating Sequence" c "Russian" на "Machine". После завершения проекта обратную настройку сделать, естественно, забыли.
А далее, при попытке модернизации решения первой задачи, начались эти чудеса.
Программа, запущенная из среды VFP, прекрасно работает, а откомпилированный exe-шник, выдает код возврата -1.
А в AERROR летит, естественно код 1526, а текстом предложение решать проблемы, возникшие на сервере данных (с кодами ошибок ). При этом совершенно ясно, что проблема находится на рабочей станции, так как машины с установленной старой версией программы продолжают работать, как ни в чем не бывало.
Хуже всего, что на эту шалость я уже наступал.

Ещё раз, всем спасибо!
Ratings: 0 negative/0 positive


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

On-line: 5 (Гостей: 5)

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