VC++中使用ADO访问SQL Server数据库与Access数据库的不同之处总结
来源:互联网 发布:肮脏的屁眼交易知乎 编辑:程序博客网 时间:2024/05/08 08:52
最近调试一个VC++ Access数据库迁移到SQL Server平台的项目,遇到了一些问题,经过几天努力,通过论坛发帖子和资料查找,最后终于找到了问题所在,并顺利解决了问题,下面是一些总结,希望对碰到类似问题的朋友能有所帮助。
VC++使用ADO访问SQL Server数据库与访问Access数据库除了在连接字符串上不同之外,其不同之处主要体现在变量定义和SQL语法上。
1、变量定义:
与ADO有关,或者说与ADO封装的OLE DB类有关,在VC++中(其他使用ADO接口(OLE DB)相关的语言,如C#,VB也是一样),Access的变量定义使用”@”加变量名,而SQL Server使用”?”,如:
Access中:
_bstr_t Sql(“Select a,b from tbwhere b=@var”);
而在SQLServer中则应改为:
_bstr_t Sql(“Select a,b from tbwhere b=?”);
否则使用AfxMessageBox捕获异常会出现”必须声明标量变量@var”。该错误比较隐蔽。
捕捉异常的方法:
2、语法差异:
在语法这一层上,就与ADO无关了。其差别主要有:
1)位操作:
比如:1、日期分隔符号,在access:英镑符(#),而sql server:是(’)
字符串连接:access中为(&)而sql server:为(+),其他的还有通配符、索引操作、标识列定义等等,更详细的内容可以参见:
Access与SQL Server的SQ语法差异:位操作,链接:
http://hi.baidu.com/iadmireu/blog/item/70f797df754b6c3d5982dd94.html
2)函数和条件语句:
如时间函数,Access中的now()对应SQL Server中的getdate()函数;条件判断函数,Access中iif()函数对应SQL Server中的case when…,更详细的内容请参见相应的联机帮助。
3)除零问题:
Access在除数为零时会丢弃相应记录,但不会报错,而SQL Server会自动报错并终止查询。
4)操作语句:
比较典型的是记录删除语句,在Access中用的是delete * from table,而SQLServer用的是delete from table。
上面的只是较为常见的不完全总结。
- VC++中使用ADO访问SQL Server数据库与Access数据库的不同之处总结
- VC使用ADO访问sql server数据库
- VS2008(VC++)使用Ado读取SQL Server和Access数据库
- VS2008(VC++)使用Ado读取SQL Server和Access数据库
- vc 使用ado访问access数据库
- VC使用ADO对象控制ACCESS数据库的访问
- VC使用ADO对象控制ACCESS数据库的访问
- VC使用ADO对象控制ACCESS数据库的访问-举例
- VC++的ADO技术访问sql server 2000数据库
- VC++使用ADO连接SQL Server数据库
- VC++使用ADO连接SQL Server数据库
- VC++使用ADO连接SQL Server数据库
- VC++使用ADO操作SQL Server数据库
- VC++使用ADO连接SQL Server数据库 .
- VC++使用ADO连接SQL Server数据库
- VC编写ADO连接Access,SQL Server数据库入门实例
- VC编程中利用ADO方式访问SQL Server 2012数据库(1)- 连接数据库
- VC++下使用ADO访问Access数据库完整篇
- C++调用约定和名字约定
- hdu_1754_线段树模板题
- Ubuntu折腾之something about pps
- 白话监控组态软件《转》
- 累...
- VC++中使用ADO访问SQL Server数据库与Access数据库的不同之处总结
- Android 学习资料
- 身份证验证算法C#
- linux 内存管理 (转载)
- PCI9054芯片接口设计中若干问题的深入研究
- 获取当前活动窗口句柄和标题
- 文学书籍之杂感
- IIS上运行aspx发现出现服务器上的应用程序不可用!!!
- 数据库应用,如何才能避免数据库帐号密码泄漏?