FDConnection1 连接SQLServer2000报错

xcb0730 2017-08-21 12:59:32

FDConnection1.ConnectionString := 'DriverID=MSSQL;Server=192.168.0.102;Database=shgl_System;User_name=sa;password=15282';
FDConnection1.Connected := True;


[FireDAC][Phys][ODBC][Microsoft][SQL Native Client][SQL Server]对象名'SYS.DATABASES'无效
...全文
2267 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xcb0730 2017-09-09
  • 打赏
  • 举报
回复
只有在sql版本在2008及以上,并且数据库采用非大小写敏感的排序方式,才不用修改。 否则必须修改
BlueStorm 2017-09-06
  • 打赏
  • 举报
回复
只有在sql版本在2008及以上,并且数据库采用非大小写敏感的排序方式,才不用修改。 否则必须修改
BlueStorm 2017-09-06
  • 打赏
  • 举报
回复
只有在sql版本在2208及以上,并且数据库采用非大小写敏感的排序方式,才不用修改。 否则必须修改
xcb0730 2017-09-06
  • 打赏
  • 举报
回复
非常感谢 BlueStorm ,可以用 FireDAC 支持 sql2008和更高版本 sql2005 或 sql2000 就需要修改 FireDAC.Phys.MSSQL.pas文件 是吗?
pcwe2002 2017-09-06
  • 打赏
  • 举报
回复
http://blog.csdn.net/pcwe2002/article/details/52527782
BlueStorm 2017-08-29
  • 打赏
  • 举报
回复 1
修改FireDAC.Phys.MSSQL.pas文件中的procedure TFDPhysMSSQLConnection.InternalSetMeta, 把其中的语句 sCompatLvl := '(SELECT COMPATIBILITY_LEVEL FROM SYS.DATABASES WHERE LOWER(NAME) = ' + AnsiLowerCase(sCurCatalog) + ')' 改为: if oConnMeta.ServerVersion >= svMSSQL2008 then //对于大小写敏感或二进制排序方式, SYS.DATABASES是一个不存在的表,必须要用小写的sys.databases sCompatLvl := '(SELECT compatibility_level FROM sys.databases WHERE name = ' + AnsiLowerCase(sCurCatalog) + ')' else //对于MSSQL2005及以下版本,不存在sys.databases 表 sCompatLvl := IntToStr(oConnMeta.ServerVersion div 10000000);

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧