ODBC_CONNECT连接SQLSERVER2000查询不出结果集怎么办?

ODBC_CONNECT连接SQLSERVER2000查询不出结果集怎么办?ODBC_CONNECT是一个非常方便的php数据库连接函数,但这个函数用起来, 经常会出现微软系统常见的莫名其妙的错误 让你无从查找。现在就给大家分析如果使用ODBC_CONNECT函数连接SQLSERVER2000查询不出结果集的解决方法。

odbc_connect ( string $dsn , string $user , string $password [, int $cursor_type ] ) : resource

其他ODBC函数需要此函数返回的连接id。只要使用不同的数据库或不同的凭据,就可以同时打开多个连接。
对于某些ODBC驱动程序,执行复杂的存储过程可能会失败,错误类似于:“无法打开存储过程上的游标,该存储过程中除了一个select语句外,还有其他任何内容。”。使用SQL_CUR_USE_ODBC 这个常量可以避免这个错误。另外,有些驱动程序不支持odbc_fetch_row()中的可选row_number参数。在这种情况下,常量SQL_CUR_USE_ODBC 可能也有帮助。

参数

dsn

连接的数据库源名称。或者,可以使用无DSN的连接字符串。

user

数据库用户名

password

数据库密码

cursor_type

这将设置用于此连接的游标类型。此参数通常不需要,但对于解决某些ODBC驱动程序的问题非常有用。为cursortype定义了以下常量:

  • SQL_CUR_USE_IF_NEEDED
  • SQL_CUR_USE_ODBC
  • SQL_CUR_USE_DRIVER

在万维景盛为客户处理的一个案例中 程序就是因为使用了SQL_CUR_USE_ODBC参数结果导致无法读取结果集 但windows系统没有任何报错和提示 无奈之下 只好将此参数换成SQL_CUR_USE_DRIVER或者SQL_CUR_USE_IF_NEEDED或者干脆去掉 问题即可解决。估计这是因为ODBC组件无法对数据库进行游标操作 而将游标操作交给SQL SERVER驱动器即可完成这个任务。

如果您有SQL2000或者php+sql server的奇葩项目需要维护 欢迎联系万维景盛客服 我们将为您提供维护+故障解决+升级到新兼容系统的完整解决方案。

发表评论

电子邮件地址不会被公开。