我使用的是通过PHP + Linux的ODBC远程MSSQL基地。 一切正常,但今天我写了查询SET
+ PIVOT
并得到了错误:
[unixODBC][FreeTDS][SQL Server]SELECT failed because the following SET options have
incorrect settings: 'ANSI_NULLS, QUOTED_IDENTIFIER, CONCAT_NULL_YIELDS_NULL,
ANSI_WARNINGS, ANSI_PADDING'. Verify that SET options are correct for use with indexed views
and/or indexes on computed columns and/or filtered indexes and/or query notifications and/or
XML data type methods and/or spatial index operations.
我试着写SET ANSI_NULLS ON
等,但它不会的作品,还有在结果0场。 通过MSSQL工作室直接在服务器上执行相同的查询工作完美。 任何想法,可能是一个问题? 谢谢。
更新:
freetds.conf
[syserver]
host =192.168.1.200
port = 1433
tds version = 7.0
AnsiNPW=YES
QuotedID=YES
ODBC.INI
[sy_odbc]
Driver = FreeTDS
Description = ODBC connection via FreeTDS
Trace = No
Servername = syserver
Database = Insy
ODBCINST.INI
[FreeTDS]
Description = TDS driver (Sybase/MS SQL)
Driver = /usr/lib/odbc/libtdsodbc.so
Setup = /usr/lib/odbc/libtdsS.so
CPTimeout =
CPReuse =
FileUsage = 1
之前,我got tds version=6.0
,并改变它高达7.0的所有错误,之后ANSI_NULLS
走了,但我仍然有结果0行。 AnsiNPW=YES
和QuotedID=YES
什么也不干我的。 如果尝试在简单查询我有结果改变版本8.0 ??????????
。 TDS_version=7.0
在odbc.ini
也无可奈何。
我查询这里 。 而我的连接字符串是: $conn=odbc_connect('sy_odbc','t','t');
更新2:
我的一些PHP页面停止工作时,我改变了TDS_version to 7.0
或7.2
,所以我将其返回到6.0。
连接字符串为您建议不要为我工作。 在所有。 (我用我的比一年多了,这是罚款,这个问题之前)
下面是错误日志问题查询与6.0版本(在这里我们有ANSI_NULLS
等警告)
下面是错误日志问题查询与7.0版本(没有警告,但0行的结果)