【问题标题】:Connecting to MySQL database from Visual Studio COBOL从 Visual Studio COBOL 连接到 MySQL 数据库
【发布时间】: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


【解决方案1】:

错误似乎告诉您您没有创建数据源名称 (DSN)。

使用 ODBC 时,您应该通过 %windir%\System32\odbcad32.exe(对于当前用户或 - 以管理员身份启动 - 对于系统)创建数据源名称(通过这种方式指定实际使用的驱动程序和至少服务器)。

提示:如果您有 32 位 COBOL 应用程序并在 64 位操作系统上运行,请改为启动 %windir%\SysWOW64\odbcad32.exe。我猜datname-arr 应该包含 DSN 名称,而不是 DB 名称。

【讨论】:

    【解决方案2】:

    -19703 记录为“无法建立连接”。

    您似乎在使用“Format 2”,我找到了 更容易使用“格式 6”并设置您的 DSN(就像 Simon 上面所说的那样)。

    【讨论】:

      猜你喜欢
      • 2017-02-24
      • 1970-01-01
      • 1970-01-01
      • 2016-12-13
      • 2021-02-24
      • 2020-03-30
      • 2023-03-26
      • 2013-04-14
      • 1970-01-01
      相关资源
      最近更新 更多