关于易语言4.12版本中外部数据库的说明
这是我(liigo)去年底(2008/11)发布在易语言论坛(bbs.eyuyan.com)的贴子,似乎一直未被搜索引擎收录,因而转载到这里,以便自己或他人用到时参阅。(唉,论坛总是对搜索引擎不友好,或着反过来说,搜索引擎一直对论坛不友好。)
原文地址:http://bbs.eyuyan.com/dispbbs.asp?BoardID=124&ID=169036
易语言4.12版本中修改了外部数据库,主要目的就为了解决不能正确读取MS SQL Server数据库中的image或text字段的问题,但由于解决问题的方向有误,虽然在一定程度上解决问题,但同时要求必须按顺序读取字段值,反而造成了用户以前编写的程序用新版编译后不能正常执行,形成了比较严重的向下兼容性问题。我们对此表示歉意!并将在下一版本中修复。
外部数据库不能正确读取MS SQL Server数据库中的image或text字段,与微软公司的SQL Server数据库的ODBC驱动程序有关。该驱动程序要求:如果SQL查询中包含image或text类型的字段,必须按照SQL查询语句中各字段出现顺序(如Select语句中未列出字段,则按表中字段的定义顺序)依次读取各字段的值,否则将会遇到“无效的描述符索引”之类错误。根据互联网网友反馈的信息,这貌似微软公司驱动程序的BUG,并有网友表示该BUG已在2005版本中被修正。
修改后的外部数据库,在MSSQL数据库表中或查询语句中不包含image或text类型字段的情况下,其行为与4.12之前版本相同(不要求按顺序读取)。如果需要读取image或text类型字段,我们建议:在SQL查询语句(Select)中明确列出各字段名称,并将image或text类型字段放在所有字段最后,同时按字段出现的顺序依次读取。