2016-09-23 4 views
0

Я новичок, когда дело доходит до серверного SQL. Я пытаюсь написать небольшую утилиту для моего собственного использования в Windows. Я загрузил MySQL и создал программу COBOL в Visual Studio. Я могу подключить VS к базе данных примеров (sakila) с помощью Server Explorer. Я вижу таблицы в окне, и когда я нахожу допустимый код в COBOL, я могу получить чистую компиляцию, поэтому VS явно «видит». Тем не менее, я не могу подключиться к службе, когда я запускаю. Я получаю код -19703 sql в операторе SQL connect, и последующий оператор также терпит неудачу.Подключение к базе данных MySQL из Visual Studio COBOL

move "sakila" to datname-arr 
move length of "sakila" to datname-len 
move "Allan" to username-arr 
move length of "Allan" to username-len 
move "password" to userpass-arr. 
move length of "password" to userpass-len 
exec sql connect :username identified by :userpass using :datname end-exec. 

Вот где я могу получить -19703. Пользователь действителен и пароль правильный. Препроцессор SQL - это OpenESQL, директива DBMAN = ODBC. Соответствующее сообщение: «Имя источника данных не найдено, а драйвер по умолчанию не указан», что может быть самоочевидным, но я не уверен, как исправить ситуацию.

+1

Нет Visual Studio COBOL. Думаю, вы имели в виду «MicroFocus COBOL для Visual Studio 2012», не так ли? Ошибка, кажется, говорит вам, что вы не создали имя источника данных. При использовании ODBC вы должны создать один (указав фактический используемый драйвер и, по крайней мере, сервер) с помощью '% windir% \ System32 \ odbcad32.exe' (либо для текущего пользователя, либо для запуска в качестве администратора). Подсказка: если у вас есть 32-разрядное приложение COBOL и запускается на 64-разрядной ОС, запустите '% windir% \ SysWOW64 \ odbcad32.exe'. Я думаю, что 'datname-arr' должен включать имя DSN, а не имя DB. –

+0

Спасибо за помощь Симона. Справедливости ради следует отметить, что «VisualStudio» - это имя в списке приложений, а также на экране открытия и на верхней панели - можно простить за то, что подумал, что это где-то! Но да, я загрузил драйверы ODBC, но был явно (с ретроспективностью), указывающий на неправильный, а также ошибался в том, что считалось «именем db». Я загрузил как 32, так и 64-разрядные версии и запускал через SysWOW64, как было предложено, создавая соединение. Мне все еще не удалось подключиться с помощью переменных или путем создания строки подключения, но я смог подключиться через подсказку, так что все в порядке. –

ответ

1

Ошибка, кажется, говорит вам, что вы не создали имя источника данных (DSN).

При использовании ODBC вы должны были создать имя источника данных (таким образом, чтобы указать фактический используемый драйвер и, по крайней мере, сервер) с помощью %windir%\System32\odbcad32.exe (либо для текущего пользователя, либо - для администратора - для системы).

Подсказка: если у вас есть 32-битное приложение COBOL и запускается на 64-битной ОС, запустите %windir%\SysWOW64\odbcad32.exe. Я думаю, что datname-arr должен включать имя DSN, а не имя БД.

0

Значение -19703 задокументировано как «Не удалось установить соединение».

Похоже, что вы используете «Format 2», я нахожу его проще в использовании «Формат 6» и настроить свой DSN (например, Саймон говорит выше).

Смежные вопросы