C++连接SQL数据库第一步 系统配置

1.设置SQLSERVER服务器为SQL登录方式,并且系统安全性中的sa用户要设置登录功能为“启用”,还有必须要有密码。

2.需要在ODBC中进行数据源配置,数据源选\”SQL SERVER”,登录方式使用“使用输入用户登录ID和密码的SQL SERVER验证”,并填写登录名(sa)和密码,注意一点,密码不能为空,这就意味着你的sa用户必须得有密码。否则无法通过系统本身的安全策略。测试通过就完成了配置。

C++连接SQL数据库第二步 C++与SQL连接初始化

1.在你所建立的C++项目中的stdafx.h头文件中引入ADO

具体代码如下

  1. #import “c:\Program Files\Common Files\System\ado\msado15.dll”  no_namespace rename(”EOF”, “adoEOF”) rename(”BOF”, “adoBOF”)

2.定义_ConnectionPtr变量后调用Connection对象的Open方法建立与服务器的连接。

数据类型_ConnectionPtr实际上是由类模板_com_ptr_t得到的一个具体的实例类。_ConnectionPtr类封装了Connection对象的Idispatch接口指针及其一些必要的操作。可以通过这个指针操纵Connection对象。

例如连接SQLServer数据库,代码如下:

  1. //连接到MS SQL Server
  2. //初始化指针
  3. _ConnectionPtr pMyConnect = NULL;
  4. HRESULT hr = pMyConnect.CreateInstance(__uuidof(Connection));
  5. if (FAILED(hr))
  6. return;
  7. //初始化链接参数
  8. _bstr_t strConnect = “Provider=SQLOLEDB;
  9. Server=hch;
  10. Database=mytest;
  11. uid=sa; pwd=sa;”; //Database指你系统中的数据库
  12. //执行连接
  13. try
  14. {
  15. // Open方法连接字串必须四BSTR或者_bstr_t类型
  16. pMyConnect->Open(strConnect, “”, “”, NULL);
  17. }
  18. catch(_com_error &e)
  19. {
  20. MessageBox(e.Description(), “警告”, MB_OK|MB_ICONINFORMATION);
  21. }//发生链接错误

C++连接SQL数据库第三步 简单的数据连接

  1. //定义_RecordsetPtr变量,调用它Recordset对象的Open,即可打开一个数据集
  2. //初始化过程 以下是个实例
  3. _RecordsetPtr pRecordset;
  4. if (FAILED(pRecordset.CreateInstance(__uuidof(Recordset))))
  5. {
  6. return;
  7. }
  8. //执行操作
  9. try
  10. {
  11. pRecordset->Open(_variant_t(”userinfo”),  _variant_t((IDispatch*)pMyConnect),
  12. adOpenKeyset, adLockOptimistic, adCmdTable);
  13. }
  14. catch (_com_error &e)
  15. {
  16. MessageBox(”无法打开userinfo表\”, “系统提示”,  MB_OK|MB_ICONINFORMATION);
  17. }

C++连接SQL数据库第四步 执行SQL语句

这里是关键,我认为只要你懂点SQL语句那么一切都会方便许多比用上面的方法简单,更有效率点。

首先

  1. m_pConnection.CreateInstance(_uuidof(Connection));  //初始化Connection指针
  2. m_pRecordset.CreateInstance(__uuidof(Recordset)); //初始化Recordset指针
  3. CString strSql=”select * from tb_goods”;//具体执行的SQL语句
  4. m_pRecordset=m_pConnection->Execute(_bstr_t(strSql),  NULL, adCmdText);//将查询数据导入m_pRecordset数据容器

至此 你的SQL语句已经执行完成了m_pRecordset内的数据就是你执行的结果。

取得记录:

  1. while(!m_pRecordset->adoEOF)//遍历并读取name列的记录并输出
  2. {
  3. CString temp = (TCHAR *)(_bstr_t)m_pRecordset->GetFields()->GetItem
  4. (”name”)->Value;
  5. AfxMessageBox(temp);
  6. pRecordset->MoveNext();
  7. }

插入记录

  1. //记得初始化指针再执行以下操作
  2. CString strsql;
  3. strsql.Format(”insert into tb_goods(no,name, price)  values(’%d’,'%s’, %d)”,m_intNo,m_strName,m_intPrice);
  4. m_pRecordset=m_pConnection-> Execute(_bstr_t(strsql),NULL,adCmdText);

修改记录

  1. CString strsql;
  2. strsql.Format(”update tb_goods set name=’%s’ ,  price=%d where no=%d “,m_strName,m_intPrice,m_intNo);
  3. m_pRecordset=m_pConnection->Execute(_bstr_t(strsql),NULL,adCmdText);

删除记录

  1. CString strsql;
  2. strsql.Format(”delete from tb_goodswhere no= ‘%d’ “,m_intNo);
  3. m_pRecordset=m_pConnection->Execute(_bstr_t(strsql),NULL,adCmdText);

以上是几个常用的SQL语句和执行方法。效率可能不是很高,不过很容易理解。如果你对SQL语句很熟悉那么可以更有效的执行查询直接获得需要的记录。C++连接SQL数据库的相关方法就为大家介绍到这里。

C++操作 SQL数据库 实例 代码步骤的更多相关文章

  1. C#学习笔记---C#操作SQL数据库

    C#操作SQL数据库 Connection(连接)对象 连接字符串: 形式1.”server=;uid=;pwd=;database=” 形式2.”server=;Intergrated Securi ...

  2. Python MySQLdb模块连接操作mysql数据库实例_python

    mysql是一个优秀的开源数据库,它现在的应用非常的广泛,因此很有必要简单的介绍一下用python操作mysql数据库的方法.python操作数据库需要安装一个第三方的模块,在http://mysql ...

  3. Python 操作 SQL 数据库 (ORCAL)

    MySQLdb.connect是python 连接MySQL数据库的方法,在Python中 import MySQLdb即可使用,至于connect中的参数很简单:host:MySQL服务器名user ...

  4. PHP操作MySQL数据库5个步骤

    PHP操作MySQL数据库一般可分为5个步骤:1.连接MySQL数据库服务器:2.选择数据库:3.执行SQL语句:4.关闭结果集:5断开与MySQL数据库服务器连接. 1.用mysql_connect ...

  5. python 之操作mysql 数据库实例

    对于python操作mysql 数据库,具体的步骤应为: 1. 连接上mysql host 端口号 数据库 账号 密码2. 建立游标3. 执行sql(注意,如果是update,insert,delet ...

  6. 通过泛型数据,操作SQL数据库

    本人在操作数据库的时候,采用将对象的形式操作传入数据库,经过大量百度和朋友帮助,总结出如下两个接口.用于插入数据,提取数据. 要这样操作的前提条件,就是类名和表名一致,类字段和表字段一致就可以了 // ...

  7. linux操作mysql数据库常用简单步骤

    连接mysql数据库: 主要看mysql安装在哪一个目录下: mysql -h主机地址 -u用户名 -p用户密码   或者mysql -h ip地址 -u  zaiai -p zaiai   或者/v ...

  8. shell脚本连接、读写、操作mysql数据库实例

    本文介绍了如何在shell中读写mysql数据库.主要介绍了如何在shell 中连接mysql数据库,如何在shell中创建数据库,创建表,插入csv文件,读取mysql数据库,导出mysql数据库为 ...

  9. 操作MySQL数据库相关代码

    注意事项: 1.导入驱动包,如我导的是mysql-connector-java-5.1.26-bin.jar 2.修改下面代码中的用户名和密码 3.其中URL为"jdbc:mysql://数 ...

随机推荐

  1. Jmeter-Maven-Plugin高级应用:Configuring the jvm that the jmeter process runs in

    Configuring the jvm that the jmeter process runs in The JMeter Maven plugin will run the JMeter proc ...

  2. iOS开发系列课程预告

    近期在Mac和iOS上做开发,认为应该写一点东西分享给感兴趣的童鞋们.在此之前.以前有非常多同行们都在埋怨苹果Objective-C的复杂和难以上手,为此也有非常多人对今年(2014年)刚推出的Swi ...

  3. ZH奶酪:JavaScript清空数组的三种方法

    参考链接:http://snandy.iteye.com/blog/893955 方式1,length赋值为0 目前 Prototype中数组的 clear 方法和mootools库中数组的 empt ...

  4. ios的坑 无痕模式

    我们的一个小应用,用localStorage做了下缓存,测试上线之后有反馈页面数据拉取不到, 最后定位到是localStorage有问题. 是Private Browsing Mode引起的.然后查看 ...

  5. 关闭xp防火墙

    在控制面版关闭防火墙 禁用“Security Center”服务 禁用“WindowsFirewall/InternetConnectionSharing(ICS)”服务 删除服务:开始运行CMD,命 ...

  6. 【转】SQL2008的sa账户被禁用,其他账户无法连接的解决方法

    或者你还有其它的sysadmin权限的账号,你可以用此账号登录,重置SA密码. 但是在以下情况下,怎么办呢? 1. SA密码丢失或者SA账号被禁用. 2. 你进行了一些安全操作,把BuiltinAdm ...

  7. chardet 模块

    #coding:utf-8 #指定本文件编码为utf-8 #python 27 #xiaodeng #chardet模块 #chardet模块下载地址: #1)http://pan.baidu.com ...

  8. 整理两个JVM博客集合,空闲时候可以看

    纯洁的微笑写的:https://www.cnblogs.com/ityouknow/p/5614961.html 集合:http://www.cnblogs.com/ityouknow/categor ...

  9. 利用SynchronizationContext.Current在线程间同步上下文

    简而言之就是允许一个线程和另外一个线程进行通讯,SynchronizationContext在通讯中充当传输者的角色.另外这里有个地方需要清楚的,不是每个线程都附加SynchronizationCon ...

  10. 用JS实现任意导航栏的调用

    首先设计一个关于导航的层叠样式表如:body{font-size:12px;font-family:Arial,Helvetica,'宋体',sans-serif;color:#333;backgro ...