0

我在 codeigniter 中使用 sql server 数据库驱动程序,并且正在执行以下查询:

 select A.inst_name,Substring((Select ',' + cast(B.program_id as varchar(15))   
                               From    k12_dms_inst_programs B
                               Where B.inst_id=A.id For XML Path('')),2,8000) As EmployeeList
 From k12_dms_institution_master A
 Group by A.inst_name,A.id

这在SSMS中工作得非常好。

但是,当我尝试使用 Codeigniter 执行相同的查询时,我收到以下错误:-

仅 Unicode 排序规则中的 Unicode 数据或 ntext 数据无法使用DB-Library(例如 ISQL)或ODBC 版本 3.7 或更早版本发送到客户端。

4

1 回答 1

1

在 php.net 上找到了一些解决方案

  1. MSSQL新手 19-Sep-2011 06:34

    In /etc/freetds/freetds.conf add these two lines (last two):
    [global]
    ;tds version = 4.2
    tds version = 8.0  
    client charset = UTF-8
    
    You can edit "charset" in php.ini too (but you don't need if you did it previously in freetds.conf):  
    ; Specify client character set.. 
    ; If empty or not set the client charset from freetds.comf is used 
    ; This is only used when compiled with FreeTDS mssql.charset = "UTF-8"
    
    Use nchar/nvarchar/ntext column types if you need unicode support.
    
  2. iteams dot org 的 dann dot farquhar 2009 年 9 月 24 日 11:45

    I found that changing the version in /etc/freetds.conf from 4.2 to 8.0
    fixes this problem without having to make any changes to the SELECT
    statement
    
  3. huberkev11 在 hotmail dot com 12-May-2006 01:47

    This is because you are using column types of like ntext instead of
    text.  There are 2 solutions.
    
    1  Change all ntext column types to text or
    2  Your query must look like: SELECT CAST(field1 AS TEXT) AS field1 FROM table
    

希望他们会有所帮助。

于 2012-12-12T09:11:01.010 回答