试验一:table连接一个sql server数据库一张表。BDE采用MSSQL驱动。
  Table1.Open;
  with Table1 do
  begin
    filter :='kfbh=''202''';
    filtered :=true;
  end;
 报错:CAPABILITY NOT SUPPORTED;
但用filter :='KFBH=''202''';没有问题。申明我的数据库默认不区分大小写。
试验二:BDE采用SQL SERVER驱动。
  没有上述错误现象。不知道为什么回出现这种现象。求达人指点!!

解决方案 »

  1.   

    没听过BDE采用SQL SERVER驱动?
      

  2.   

    我用的是ADO
    没有出现问题
      

  3.   

    1。BDE采用SQL SERVER驱动??
    BDE中驱动类型为sql server,其实就是采用的odbc的接口。这个是没有问题的。
    2。使用query也是没有问题的。为什么Ttable 有这个问题呢?
      

  4.   

    把“filter :='kfbh=''202'''”改为
    filter:='kfbh='''+'202'+''''试试看
      

  5.   

    还是没搞定,采用bde提供的驱动连接sql server数据库,使用db2是好的。
    通过odbc是没有问题的。但我不想培训odbc连接。急用啊,分不够我再加。我在做db2到sql server的转换。用到很多。换别的方式太麻烦啦!!
      

  6.   

    先把Table1的filtered := false;
    如:
      Table1.Open;
      with Table1 do
        begin
          filtered := false;
          filter :='kfbh=''202''';
          filtered := true;
        end;
    应该没有问题啦!
      

  7.   

    谢谢各位,
    我又做了一下试验:
      我删除了主键约束。执行没有问题。加上主键约束,就报错。  搞不懂,filter :='KFBH=''02'''可以,但 filter :='kfbh=''02'''不行。和主键约束有什么关系?
      我的数据库是不区分大小写和重音的。
      跪求达人解决!!!!
      

  8.   

    最新测试结果:应该和create table时的column大小写有关系。我现在创建的column全为大写,所以小写filter时会出错。但我现在程序中大小写都可能存在,能不能在不更改程序的情况下,实现大小写构能过滤的问题。。