远程数据库的 C++玩法,真的是个老话题了,不过用起 ADO 配 SQL Server,还是挺顺的。尤其是在你要和公司内部系统打通数据时,写几个查询、搞个更新、连个记录都挺方便。
ADO 的_ConnectionPtr和_CommandPtr这俩东西,用起来有点像智能指针,一手握住数据库连接,一手执行 SQL,搭配使用,效率还不错。你只要搞定了连接字符串,像Provider=SQLOLEDB;Data Source=...
那种格式,后面的操作就顺畅多了。
嗯,环境配置别忽略了,msado15.dll、adodb.h这些是基础,#import
引入得对,不然你连对象都创建不了。我建议用_bstr_t
和_variant_t
这些封装好的类型,省得和 COM 的原始接口打太多交道,太费劲。
执行 SQL 语句也不复杂,一个cmd->CommandText
加上cmd->Execute
,数据就回来了。你再用个Recordset
遍历一下,字段读取也就一句话的事,rs->Fields->GetItem("字段名")->Value
就拿到了。响应也快,代码也简单。
有个压缩包叫databaseremote
,里面有不少例子和文档,刚上手的话蛮有。建议你多跑几遍,顺带改改连接信息、试试参数化 SQL,效果就更直观了。
如果你之前没怎么接触 ADO,推荐你去看看几个相关例子,比如ADO 操作 SQL_Server 数据库,还有个优化用的C++连接 SQL Server 数据库代码优化,写法更现代一些,看了肯定有收获。
如果你经常搞 C++项目,又得和 SQL Server 打交道,那这套 ADO 方案还蛮值得一试的,配置一次、长期受益。