代码之家  ›  专栏  ›  技术社区  ›  themis

通过ODBC调用SQL Server存储过程失败,留下空表

  •  1
  • themis  · 技术社区  · 15 年前

    我们正在Linux上使用来自C的ODBC。对于SQL Server 2008和MySQL,我们都可以使用ODBC成功地执行直接语句(“插入…”、“选择…”等)。我们正在迁移到存储过程,所以我们首先开发了mysql存储过程。使用odbc works调用mysql存储过程。生活是美好的。

    存储过程被转换成t-sql。我们通过直接从visual studio执行查询来验证它们的功能。数据库已满,查询工作正常。胡扎。

    我们有一个测试程序,允许我们使用mysql或sql server,直接执行或调用存储过程。我们从C测试程序调用T-SQL存储过程。日志输出表示在语句失败的情况下,表一直被数据填充,查询一直在工作等。程序退出(比正常时间长几秒)。其他3种情况(direct mysql、direct sql server、storedprocmysql)都可以。

    我们检查了sql server数据库。它是空的。我们打开了自动提交,所以我认为这不是提交问题。存储过程非常简单,是直接sql的副本。有什么想法吗?

    1 回复  |  直到 15 年前
        1
  •  0
  •   Peter Schofield    15 年前

    听起来查询正在运行——然后由于某种原因出错,所有的事情都打包成一个事务——然后回滚。因此空表。

    存储过程中是否有错误捕获?SQL Server 2005及更高版本通过try..极大地改进了错误处理。渔获量。