2016-09-23 2 views
0

저는 서버 기반 SQL과 관련하여 초보자입니다. 내 자신의 사용을위한 작은 유틸리티를 Windows에서 작성하려고합니다. MySQL을 다운로드하고 Visual Studio에서 COBOL 프로그램을 만들었습니다. 서버 탐색기를 사용하여 VS를 예제 데이터베이스 (sakila)에 연결할 수 있습니다. 창에서 테이블을 볼 수 있습니다. COBOL에서 올바른 이름을 지정할 때 깨끗한 컴파일을 얻을 수 있으므로 VS는 분명 '보는 것'입니다. 그러나 실행할 때 서비스에 연결할 수 없습니다. SQL 'connect'문에 -19703 sql 코드가 생기고 후속 명령문도 실패합니다.Visual Studio COBOL에서 MySQL 데이터베이스에 연결

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이 없습니다. 내 생각에 "Visual Studio 2012 용 MicroFocus COBOL"을 의미하셨습니까? 오류가 발생하여 데이터 원본 이름을 만들지 못했음을 알 수 있습니다. ODBC를 사용할 때'% windir % \ System32 \ odbcad32.exe' (현재 사용자 용이거나 시스템 용 (관리자로 시작) 중 하나)를 통해 하나의 (사용 된 실제 드라이버와 최소한 서버를 지정해야합니다.) 생성해야합니다. 힌트 : 32 비트 COBOL 앱을 가지고 있고 64 비트 OS에서 실행하는 경우 대신 '% windir % \ SysWOW64 \ odbcad32.exe'를 시작하십시오. 'datname-arr'에는 DB 이름이 아닌 DSN 이름이 포함되어 있어야합니다. –

+0

도움 주셔서 감사합니다 Simon. 공평하게 말하면, 'VisualStudio'는 앱 목록의 이름이고, 시작 화면과 상단 막대에 있습니다. 한 사람이 생각했던 것을 용서할 수 있습니다! 하지만 네, ODBC 드라이버를 다운로드했지만 명백하게 (뒤늦은 지혜로) 잘못된 이름을 가리키는 것뿐 아니라 'db 이름'으로 간주되는 것에 착각했습니다. 나는 32 비트와 64 비트 버전을 모두 다운로드했고, 제안 된대로 SysWOW64를 통해 연결을 만들었다. 나는 여전히 변수를 사용하거나 연결 문자열을 생성하여 연결할 수 없었지만 프롬프트를 통해 연결할 수 있었으므로 괜찮습니다. –

답변

1

이 오류는 사용자가 데이터 원본 이름 (DSN)을 만들지 않았다는 것을 알려주는 것처럼 보입니다.

ODBC를 사용할 때 %windir%\System32\odbcad32.exe (현재 사용자의 경우 또는 시스템의 경우 - 관리자로 시작 됨)을 통해 데이터 소스 이름 (사용 된 실제 드라이버와 최소한 서버를 지정하는 방식)을 만들어야합니다.

힌트 : 32 비트 COBOL 앱이 있고 64 비트 OS에서 실행되는 경우 %windir%\SysWOW64\odbcad32.exe을 대신 시작하십시오. datname-arr에는 DB 이름이 아닌 DSN 이름이 포함되어 있어야한다고 생각합니다.

0

-19703 값은 "연결할 수 없습니다."라고 기록되어 있습니다.

"Format 2"을 사용하고있는 것처럼 보입니다. 은 "형식 6"을 ​​사용하고 DSN을 설정하기 쉽습니다 (Simon이 말한 것과 같습니다).

관련 문제