用oledb odbc ado等来访问数据库,已经使得各种数据之间的差异被大大缩小了,但是还是有一些差异存在的,例如SQL Server可以写 select top 1.....,Oracle只能写 where rownum=1,还有SQL Server写 where my_date_col='2004-03-28 14:53:00'可是Oracle就要写成where my_date_col=TO_DATE('2004-03-28 14:53:00','YYYY-MM-DD HH24:MI:SS'),等等诸如此类的差异,如何屏蔽?java有像JDO这样的东西,c++要怎么做呢?请问各位在实践中又是怎么做的呢?有没有某种支持面向对象的查询语言支持c++?
欢迎各位前来讨论,谢谢
欢迎各位前来讨论,谢谢
但我觉得可以写一个类来处理这种情况
选得到后台数据库的类别,
然后再转化SQL语句。。如SQL就可以用TOP是ORACLE就转成ROWNUM=1
不过我觉得会很麻烦,,而且可能算法会比较复杂吧。。
个别的sql语句可以针对数据库做一些改动。
比方说时间,哪个让你用时间表示了,用长整数表示,又方便有快
比方说bool型,用short int表示
至于其他的差异就很少了