纯C++ 连接SQL Server2005 数据库读写操作的小例子
一个测试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 数据库读写操作的小例子的更多相关文章
- c#vs连接SQL sever数据库入门操作
		
对于需要连接数据库的项目,可以参考的简单初级代码.实现打开数据库,读入数据功能 using System; using System.Collections.Generic; using System ...
 - 详解连接SQL Server数据库的方法,并使用Statement接口实现对数据库的增删改操作
		
总结一下,连接SQL Server数据库需要以下几个步骤: 1. 导入驱动Jar包:sqljdbc.jar 2. 加载并注册驱动程序 3. 设置连接路径 4. 加载并注册驱动 5. 连接数据库 6. ...
 - Python 学习 第17篇:从SQL Server数据库读写数据
		
在Python语言中,从SQL Server数据库读写数据,通常情况下,都是使用sqlalchemy 包和 pymssql 包的组合,这是因为大多数数据处理程序都需要用到DataFrame对象,它内置 ...
 - python 使用pymssql连接sql server数据库
		
python 使用pymssql连接sql server数据库 #coding=utf-8 #!/usr/bin/env python#------------------------------ ...
 - JDBC连接sql server数据库及其它
		
JDBC连接sql server数据库的步骤如下: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的 ...
 - ThinkPHP连接sql server数据库
		
亲身经历,在网上找连接sql server数据库的方法,还是不好找的,大多数都是照抄一个人的,而这个人的又写的不全,呵呵,先介绍一下我连接的方法吧.如果你是用THINKPHP连接,那么最重要的就是配置 ...
 - JDBC连接sql server数据库的详细步骤和代码
		
JDBC连接sql server数据库的详细步骤和代码 JDBC连接sql server数据库的步骤如下: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Ja ...
 - python连接sql server数据库实现增删改查
		
简述 python连接微软的sql server数据库用的第三方模块叫做pymssql(document:http://www.pymssql.org/en/stable/index.html).在官 ...
 - Java使用JDBC连接SQL Server数据库|实现学生成绩信息系统
		
Java实验四 JDBC 使用SQL Server数据库或者MySQL数据库各自的客户端工具,完成如下任务: (1)创建数据库students: (2)在数据students中创建表scores,包括 ...
 
随机推荐
- AtCoder Grand Contest 001
			
B - Mysterious Light 题意:从一个正三角形边上一点出发,遇到边和已走过的边则反弹,问最终路径长度 思路:GCD 数据爆long long #pragma comment(linke ...
 - PHP命名规范【转】
			
[转]谭博的个人网站 [类] 1.类名与类文件名采用驼峰式且首字母大写 2.类私有属性和私有方法名称以下划线开头 3.方法名使用驼峰式 [变量] 变量名使用小写字母加下划线 [函数] 函数名使用小 ...
 - Android Application Project 工程目录下各个文件的意思
			
(1) src:源文件,主要是完成java代码的编写 (2) gen:ADT即系统自动生成的JAVA文件(即源代码目录),程序员千万不要去修改 (3) gen->[Package Name]-& ...
 - SQL Server 中的三种分页方式
			
USE tempdb GO SET NOCOUNT ON --创建表结构 IF OBJECT_ID(N'ClassB', N'U') IS NOT NULL DROP TABLE ClassB GO ...
 - Windows Server 2012 四个版本对比
			
Windows Server 2012 有4种版本: Foundation, Essentials, Standard and Datacenter. 版本 Foundation Essentials ...
 - Codeforces 372
			
A (被装的袋鼠不可以装的袋鼠)贪心,排序,从n/2分成两部分. B 好一道前缀和的题目. C 标准算法不难想,m^2的算法见http://codeforces.com/blog/entry/9907 ...
 - linux内核地址mapping
			
linux内核采用页式存储管理,虚拟地址空间划分成固定大小的页面,由MMU(memory manager unit)在运行时将virtual address mapping to (或者说是变化成)某 ...
 - POJ2763-Housewife Wind(树链剖分)
			
也是入门题,和上一题不一样的是权值在边上. 调了半天后来发现线段树写错了,build的时候没有pushup...蠢哭了好吗.... 做题还是不专心,太慢辣.. #include <algorit ...
 - Gym 100507C	Zhenya moves from parents (线段树)
			
Zhenya moves from parents 题目链接: http://acm.hust.edu.cn/vjudge/contest/126546#problem/C Description Z ...
 - 让UITableViewCell的分隔线宽度等于屏幕的宽度
			
3种方法: 1.自定义cell: 1).取消系统的分隔线 2).添加一个高度为1,宽度为屏幕宽度的UIView作为cell的子视图,通过设置frame或者约束使这个UIView始终在cell的底部 3 ...