对于基于服务器的SQL,我是新手。我正在尝试在Windows中编写一个供我自己使用的小工具。我已经下载了MySQL并在Visual Studio中创建了一个COBOL程序。我可以使用Server Explorer将VS连接到示例数据库(sakila)。我可以在窗口中看到表格,当我在COBOL中命名一个有效的表格时,我可以得到一个干净的编译,所以VS显然是“看到它”。但是,我运行时无法连接到服务。我在SQL'connect'语句中获得-19703 sql代码,后续语句也失败了。
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。相关的消息是“未找到数据源名称且未指定默认驱动程序”,这可能是自解释的,但我不确定如何纠正。
答案 0 :(得分:1)
错误似乎告诉您没有创建数据源名称(DSN)。
使用ODBC时,您应该通过%windir%\System32\odbcad32.exe
创建数据源名称(这种方式指定使用的实际驱动程序,至少指定服务器)(对于当前用户或 - 以管理员身份启动 - 用于系统)
提示:如果您有一个32位COBOL应用程序并在64位操作系统上运行,请启动%windir%\SysWOW64\odbcad32.exe
。我想datname-arr
应该包含DSN名称,而不是数据库名称。
答案 1 :(得分:0)