一个测试c++链接 sql server 数据库的例子
// 数据库说明
// 数据库用户为 sa , 密码为 空
// 数据库为 MyDB
// 表为 UserInfo
// 表字段为 Name 、 PassWd 、ID

// TestSQL.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <iomanip>
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF", "EndOfFile")
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
// 初始化COM接口
CoInitialize(NULL);

// _RecordsetPtr智能指针,可以用来打开库内数据表,并可以对表内的记录、字段等进行各种操作
_RecordsetPtr m_pRecordset("ADODB.Recordset");//定义记录集对象

// _ConnectionPtr智能指针,通常用于打开、关闭一个库连接或用它的Execute方法来执行一个不返回结果的命令语句
_ConnectionPtr m_pConnection("ADODB.Connection");//定义数据库连接对象

try
{
// 创建Connection对象
m_pConnection.CreateInstance("ADODB.Connection");

// 设置连接字符串,若数据库在网络上则Server为形如(192.168.253.253,3340)
_bstr_t strConnect = "Provider=SQLOLEDB; Server=Localhost; Database=MyDB; uid=sa; pwd=;";

// 建立与服务器连接
m_pConnection->Open(strConnect,"","",adModeUnknown);
if (m_pConnection ==NULL)
{
cerr<<"Lind data ERROR!\n";
}

m_pRecordset.CreateInstance(__uuidof(Recordset));//创建记录集对象

//取得表中的记录
_bstr_t bstrSQL("select *from UserInfo");//查询语句
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);

_variant_t vsnum, vsName,vsPassWd, vsID,vsmajor;//对应库中的snum,sname,sage,ssex,smajor

cout<<"姓名 密码 ID\n";
cout<<"-------------------------------------------\n";

while (!m_pRecordset->EndOfFile)
{
vsName= m_pRecordset->GetCollect("Name");
vsPassWd= m_pRecordset->GetCollect("PassWd");
vsID= m_pRecordset->GetCollect("ID");

if (vsnum.vt !=VT_NULL && vsName.vt !=VT_NULL&& vsPassWd.vt!=VT_NULL && vsID.vt != VT_NULL&& vsmajor.vt!=VT_NULL)
{
cout.setf(ios::left);
cout<<setw(14) <<(char*)(_bstr_t)vsName;
cout<<setw(14) <<(char*)(_bstr_t)vsPassWd;
cout<<setw(14) <<(char*)(_bstr_t)vsID;
cout.unsetf(ios::left);
cout<<endl;
}

//移动下一条记录
m_pRecordset->MoveNext();
}

cout<<"\n------------------------------------------\n";

//用Execute执行sql语句来创建表
m_pConnection->Execute("CREATE TABLE Employee(EmID INTEGER,EmName TEXT,EmAge INTEGER,EmBirthday DATETIME)", NULL, adCmdText);

m_pRecordset->Close();//关闭记录集
}
catch (_com_error e)
{
e.Description();//抛出异常
}

if (m_pConnection->State)
{
m_pConnection->Close();
}

::CoUninitialize();
return 0;
}

纯C++ 连接SQL Server2005 数据库读写操作的小例子的更多相关文章

  1. c#vs连接SQL sever数据库入门操作

    对于需要连接数据库的项目,可以参考的简单初级代码.实现打开数据库,读入数据功能 using System; using System.Collections.Generic; using System ...

  2. 详解连接SQL Server数据库的方法,并使用Statement接口实现对数据库的增删改操作

    总结一下,连接SQL Server数据库需要以下几个步骤: 1. 导入驱动Jar包:sqljdbc.jar 2. 加载并注册驱动程序 3. 设置连接路径 4. 加载并注册驱动 5. 连接数据库 6. ...

  3. Python 学习 第17篇:从SQL Server数据库读写数据

    在Python语言中,从SQL Server数据库读写数据,通常情况下,都是使用sqlalchemy 包和 pymssql 包的组合,这是因为大多数数据处理程序都需要用到DataFrame对象,它内置 ...

  4. python 使用pymssql连接sql server数据库

    python 使用pymssql连接sql server数据库   #coding=utf-8 #!/usr/bin/env python#------------------------------ ...

  5. JDBC连接sql server数据库及其它

    JDBC连接sql server数据库的步骤如下: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的 ...

  6. ThinkPHP连接sql server数据库

    亲身经历,在网上找连接sql server数据库的方法,还是不好找的,大多数都是照抄一个人的,而这个人的又写的不全,呵呵,先介绍一下我连接的方法吧.如果你是用THINKPHP连接,那么最重要的就是配置 ...

  7. JDBC连接sql server数据库的详细步骤和代码

    JDBC连接sql server数据库的详细步骤和代码 JDBC连接sql server数据库的步骤如下: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Ja ...

  8. python连接sql server数据库实现增删改查

    简述 python连接微软的sql server数据库用的第三方模块叫做pymssql(document:http://www.pymssql.org/en/stable/index.html).在官 ...

  9. Java使用JDBC连接SQL Server数据库|实现学生成绩信息系统

    Java实验四 JDBC 使用SQL Server数据库或者MySQL数据库各自的客户端工具,完成如下任务: (1)创建数据库students: (2)在数据students中创建表scores,包括 ...

随机推荐

  1. hadoop1.2.1三种模式配置

    1.本地模式 本地模式的安装 将hadoop 安装包解压后不用任何配置就是默认的本地模式 此时 core-site.xml ,hdfs-site.xml , marped.site.xml 三个配置文 ...

  2. 详解 jupyter notebook 集成 spark 环境安装

    来自: 代码大湿 代码大湿 1 相关介绍 jupyter notebook是一个Web应用程序,允许你创建和分享,包含活的代码,方程的文件,可视化和解释性文字.用途包括:数据的清洗和转换.数值模拟.统 ...

  3. SRM 509 DIV1 500pt(DP)

    题目简述 给定一个字符串,可以对其进行修改,删除,增加操作,相应的操作有对应的花费,要求你用最小的花费把字符串变为回文串 题目做法 先搞一遍floyed把各种操作的最小花费求出来,然后就是类似编辑距离 ...

  4. HDU 5778 abs (枚举)

    abs 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5778 Description Given a number x, ask positive ...

  5. poj 3041 Asteroids(最小点覆盖)

    http://poj.org/problem?id=3041 Asteroids Time Limit: 1000MS   Memory Limit: 65536K Total Submissions ...

  6. LINUX下成功搭建SVN

    步骤如下: 1: yum install -y subversion 2:svnserve –version 3: [root@singledb ~]# mkdir /u02/svn [root@si ...

  7. 在Android4.0中Contacts拨号盘界面剖析(源码)

      通过在 ViewPager 的适配器对象中,发现过一下三行代码 private DialpadFragment mDialpadFragment; private CallLogFragment ...

  8. UI进阶 数据加密

    一.数据安全 在互联网发展趋势迅猛的今天,数据安全的重要性日趋凸显.也成为我们必须了解的互联网知识.在移动互联网浪潮下,用户的资金安全.企业的信息安全都是我们实际开发中必须考虑的内容.

  9. ASP.NET MVC- 数据验证机制

    ASP.NET MVC的数据验证机制,比起ASP.NET WEBFORM那种高效很多.下面记录以下两个示例,以便日后方便查阅. 方式一:在Controller里通过AddModelError方法返回错 ...

  10. win8图片默认不显示

    最近,发现了一个问题,在查看图片的时候,出现了这样的情况: 查看的时候很不方便,想要找到自己需要的图片就要误打误撞,也不知道自己在哪儿设置了,于是,上网查资料,才发现其实只需要简单的该一下设置就可以了 ...