程序原来是在sql server 2000下运行的
现在要在sql server 2005下运行
已经把原来sql server 2000下的表一模一样的在sql server 2005下建好了
(程序就用一张表有int,varchar,datetime,money几个字段)

调试程序发现在一处代码处过不去

TTable *mytable;
mytable->Open();//这处代码处过不去,运行到这句代码报下面的错误

报错是

The query uses non-ANSI outer join operators ("*=" or "=*"). To run this query without modification, please set the compatibility

网上查上面报的错为在sql server 2005下使用了("*=" or "=*")不兼容,但是程序并没有找到使用了不兼容语句的地方

谁知道问题出在哪呢

把你的控件换成ADOTable看看,

C/C++ code
__published: TADOTable *mytable; //非自己定义的! ////////////////////////////////////////// mytable->Open();

最好不要用BDE面板的组件来操作sql服务器数据库

既然有ADOTable,就用ADO的!

程序是很多年前写的
如果换,涉及的地方太多
我不想换
有其它解决办法吗

要换起来也容易,先把程序做个备份!

Table和ADOTable的很大一部分方法和属性都是一样的,你直接来个字符串替换

即可!

而且你用的BDE,这种数据库驱动程序已经比较老了,发布这种数据库程序也比较费事,

访问sql类型的数据库,建议你用ADO组件!

建议你用ADO组件