【发布时间】:2016-09-23 21:36:08
【问题描述】:
当谈到基于服务器的 SQL 时,我是新手。我正在尝试在 Windows 中编写一个供我自己使用的小实用程序。我已经下载了 MySQL 并在 Visual Studio 中创建了一个 COBOL 程序。我可以使用服务器资源管理器将 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。相关消息是“未找到数据源名称且未指定默认驱动程序”,这可能不言自明,但我不确定如何纠正。
【问题讨论】:
-
没有 Visual Studio COBOL。我猜你的意思是“Visual Studio 2012 的 MicroFocus COBOL”,是吗?该错误似乎告诉您您没有创建数据源名称。使用 ODBC 时,您应该通过
%windir%\System32\odbcad32.exe(对于当前用户或(以管理员身份启动)系统)创建一个(指定实际使用的驱动程序和至少服务器)。提示:如果您有 32 位 COBOL 应用程序并在 64 位操作系统上运行,请改为启动%windir%\SysWOW64\odbcad32.exe。我猜datname-arr应该包含 DSN 名称,而不是数据库名称。 -
感谢西蒙的帮助。公平地说,“VisualStudio”是应用程序列表、打开屏幕和顶部栏上的名称——人们可能会认为这是一个存在的地方!但是,是的,我已经下载了 ODBC 驱动程序,但显然(事后看来)指向了错误的驱动程序,并且误认为什么是“数据库名称”。我下载了 32 位和 64 位版本,并按照建议通过 SysWOW64 运行,创建了一个连接。我仍然无法使用变量或生成连接字符串进行连接,但我能够通过提示进行连接,这很好。
标签: mysql visual-studio-2012 cobol